$("#Form") を使用してフォームを送信せずにフォーム データを保存する方法。serializeArray ()。serializeArray を使用している場合、フォーム送信でのみ機能し、ボタンのクリック では機能しません cshtml ページからこの関数を呼び出すと、コントローラー (モデル) でフォーム データを取得できません。私のコードは、
function SaveCall() {
$("#ItemData").val(JSON.stringify($("#jqxOpStockGrid").jqxGrid('getboundrows')));
$.ajax({
url: '/INVOpeningStock/create',
type: 'POST',
data: $("#INVOpeningStock_Form").serializeArray(),
cache: false,
aync: false,
success: function (data) {
if (!data.success) {
} else {
}
}
});
}
コントローラー メソッドでヒットする Ajax 呼び出し。しかし、パラメーター モデルは空でした。私のコントローラーメソッドは次のとおりです。
[HttpPost]
public ActionResult Create(INVOpeningStock invopeningstock )
{
//Method Body
}
私のcshtmlページコードは
@using (Html.BeginForm(new { id = "INVOpeningStock_Form" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset class="fieldset">
<table width="100%" align="center" class="textleft">
<tr>
<td width="20%">
<div class="editor-label">
@Html.LabelFor(model => model.cName)
</div>
</td>
<td width="80%" align="left">
<div class="editor-field">
@Html.TextBoxFor(model => model.cName, new { maxlength = 50, @class = "textbox mediumtxt reqtext" })
</div>
@Html.ValidationMessageFor(model => model.cName, "", new { @class = "required" })
</td>
</tr>
</table>
</fieldset>