ASP.NET MVC 4 RC Web API の奇妙なバインドの問題と思われるものを取得しています。クライアントからの投稿リクエストを受け入れるためのメソッドがあります。問題は、post メソッドが呼び出されたときにどのパラメーターもバインドされていないことです。throw 行と名前のブレークポイントに到達し、電子メールは両方とも null です。JavaScript でリクエストのタイプを GET に変更すると、以下の Get 関数がパラメータをバインドして呼び出されます。
パラメータが Post メソッドのバインドに失敗するのはなぜですか? また、これを修正するにはどうすればよいですか?
send: function(evt) {
evt.preventDefault();
$.ajax( {
url: '/api/person',
data: this.model.toJSON(),
type: "POST",
dataType: "json",
success: function(data) {
console.log("Success");
},
error: function(data) {
console.log("Error");
}
});
}
コントローラーのアクションは次のとおりです。
public void Get(string name, string email) {
throw new NotImplementedException();
}
public void Post(string name, string email) {
throw new NotImplementedException();
}
ノート:
- ASP.NET MVC 4 RC Web API のすべてのデフォルトを使用しています (したがって、デシリアライザーは Json.NET である必要があります)。
- JS デバッガーの Chrome ネットワーク タブは、投稿時にフォーム データのパラメーターを正しく表示します。