0

私はこのようなPOSTメソッドを持っています

    public void PostMethod([FromBody]string param)
    {
        var test = param;
    }

そしてシンプルなJSスクリプト

<script type="text/javascript">
$.ajax({
    url: 'http://localhost:8101/sd/Localization/PostMethod',
    type: 'POST',
    data: {
        param: 'test'
    }
});
</script>

うまくいきました。Ajax呼び出しはメソッドを呼び出していますが、パラメータはnullです:/常に。理由はわかりません。実行できません。誰かが私を助けて、正しい方向を教えてくれますか?

// アップデート

新しいプロジェクトを作成したものをチェックして、何かを壊していないことを確認してください。デフォルト設定の新しいプロジェクトでも、常にnullになります

4

1 に答える 1

2

param単純型なので、単純型で機能させるには、次のようにします。

<script type="text/javascript"> 
$.ajax({ 
    url: 'http://localhost:8101/sd/Localization/PostMethod', 
    type: 'POST', 
    data:  {"" : 'test' } 
    } 
}); 
</script>

それでも自分のようなPOSTリクエストを作成したい場合は、独自の強い型モデルを定義します。

class YourModel
{
    public string Param {get; set;}
}

だからあなたの行動:

public void PostMethod(YourModel param)   
{   
    var test = param;   
}

または使用JObject

public void PostMethod(JObject param)   
{   
    var test = param;   
}

詳しくは:

http://www.asp.net/web-api/overview/working-with-http/sending-html-form-data,-part-1

于 2012-10-02T16:35:24.770 に答える