我有下面的代碼,當我點擊提交按鈕的名稱和值沒有被髮送到Ajax.BeginForm()不發送提交按鈕的名稱/值
@using(Ajax.BeginForm(new AjaxOptions{Url = "http://localhost/controller/action"}))
{
<button name="action" type="submit" value="Save">
<span>Save</span>
<!-- More HTML tags here -->
</button>
}
我看看服務器在jquery.unobtrusive-ajax.js
文件中查看它是否應發送被點擊的按鈕的名稱/值,並找到此代碼將這些值作爲屬性附加到稍後在發佈請求中傳遞的表單中。
$("form[data-ajax=true] :submit").live("click", function (evt) {
var name = evt.target.name,
form = $(evt.target).parents("form")[0];
$(form).data(data_click, name ? [{ name: name, value: evt.target.value }] : []);
setTimeout(function() {
$(form).removeData(data_click);
}, 0);
});
的evt.target.name
和evt.target.value
值包含從註冊的點擊按鈕標籤內的HTML元素的名稱/值。
我設法通過在上面的代碼中將evt.target
替換爲evt.currentTarget
來實現它,但我有點擔心這可能會產生意想不到的副作用。
有沒有更好的方法將提交按鈕的名稱/值發送到服務器?