MVC のコントローラーにデータを送信する次のスクリプトがあります。
$.ajax({
url: '/products/create',
type: 'post',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({
'name':'widget',
'foo':'bar'
})
});
私のコントローラーは次のようになります。
[HttpPost]
public ActionResult Create(Product product)
{
return Json(new {success = true});
}
public class Product
{
public string name { get; set; }
}
コントローラーアクションなしで「foo」変数を取得する方法はありますか
- モデルの修正
- アクションの署名を変更する
通常のフォーム送信であれば、Request.Form["foo"] にアクセスできますが、application/json 経由で送信されたため、この値は null です。
アクション フィルターからこの値にアクセスできるようにしたいので、署名/モデルを変更したくありません。