クリック イベントを持つ単純な div の代わりに、送信ボタンのないフォーム内のデータを送信したいのですが、このデータはすべて、コントローラーのアクションによって厳密に型指定されたビュー モデルとして受信される必要があります。たとえば、次のhtmlがあります
<form method="POST" id="frm" name="frm">
<input type="text" name="Texting"/>
<select name="Car">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
<input type="checkbox" name="IsChecked" checked="checked"/>
</form>
@PageResources.btnSearch
<script type="text/javascript">
function doAction() {
$.post("DoAction",JSON.stringify($("#frm").serialize()), function(data) {
});
}
また、コントローラーのアクションは次のようになります
[HttpPost]
public ActionResult DoAction(TestViewModel model)
{
return Json(model, JsonRequestBehavior.AllowGet);
}
そしてビューモデル
public class TestViewModel
{
public string Texting;
public string Car;
public bool IsChecked;
}
アクションが呼び出されたとき、問題は、コントロールに何かを入力してもモデルに値がないことです。何が問題なのですか?mvc が私のデータをビューモデルとして解釈しないのはなぜですか?