MVC3、Razor、C#、JQuery、および AJAX を使用しています。
フォームをサーバーにポストバックするために Ajax 呼び出しを使用しています。コントローラーに返されるすべてのフォーム要素の値を次のように取得します。
[HttpPost]
public ActionResult Edit(Product myProduct, string actionType)
if (actionType == "Save")
save....
そして、私が持っているビューで:
@using (Html.BeginForm("Edit", "RA", FormMethod.Post, new { @class = "editForm", @id = "frmEdit" }))
フォーム要素:
<td>
@Html.HiddenFor(p=>p.Id)
<button type="submit" name="actionType" value="Save" >Save</button>
</td>
<td>@Html.EditFor(p=>p.Name)</td>
一部の Ajax:
$('.editForm').on('submit', function () {
$.ajax({
url: this.action,
type: this.method,
data: $('#frmEdit').serialize(),
context: $('button', this).closest('tr'),
success: function (result) {
$(this).html(result);
}
});
return false;
});
JQueryの問題とボタンの値の送信に関するかなりの数の投稿を見たので、問題の行は次のとおりだと思います。
data: $('#frmEdit').serialize(),
しかし、「保存」のactionTypeを送信するボタンを取得できません。私はただヌルになります。
感想大歓迎です。
ありがとう。
アップデート:
コードが JQuery リスナーに干渉しているようです ?? 私のコードは次のとおりです。
<input type="submit" id="btn" name="btn" value="Save" onclick="document.getElementById('actionType').value = 'Save';"/>