我有以下代码,当我单击提交按钮时,它的名称和值没有被发送到服务器
@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
但我有点担心这可能会产生意想不到的副作用。
有没有更好的方法将提交按钮的名称/值发送到服务器?