Ajax.BeginForm 强制完全回发
Ajax.BeginForm force full postback
如何强制Ajax.BeginForm(MVC3,不显眼)执行完整的回发?
在MVC2中,我刚刚清除了"点击"和"提交"处理程序。如何在 MVC3 中执行此操作?
//does not work in MVC 3 with unobtrusive ajax :((
$('#myForm').unbind('click');
$('#myForm').unbind('submit');
附言。如果您有兴趣,我需要这个来上传文件。如果没有上传任何文件 - ajax 很好。如果正在上传文件,请让它执行完整回发。
更新:
在查看了"jquery.unobtrusive-ajax.js"源代码后,我看到了以下内容:
$("form[data-ajax=true]").live("submit", blahblah);
所以我想出了这个,它有效:
$("form[data-ajax=true]").die("submit");
但这似乎有点"黑客",有什么"合法"的方法可以从表单中清除所有提交事件吗?我想更新的问题是现在:如何使用使用不同选择器的"die"语句清除"实时"事件处理程序?
如果你可以修改不显眼的库......你可以在提交事件处理程序中检查表单是否包含任何文件,如果是,则通过AJAX执行完整的POST。
$("form[data-ajax=true]").live("submit", function (evt) {
var clickInfo = $(this).data(data_click) || [];
evt.preventDefault();
if (!validate(this)) {
return;
}
if ($("input[type=file]", this).val()) {
this.submit();
}
else {
asyncRequest(this, {
url: this.action,
type: this.method || "GET",
data: clickInfo.concat($(this).serializeArray())
});
}
});
相关文章:
- 如何处理Ajax.BeginForm()OnError OnFailure回调
- 使用jQuery的.on()方法阻止Ajax.BeginForm中提交的默认行为
- Ajax.BeginForm标识在OnComplete方法中单击的按钮
- ajax.beginform() 不更新部分视图 MVC
- 无法重载 Ajax.BeginForm 的提交方法
- 如何通过AJAX.BeginForm'onsuccess被称为
- Ajax.BeginForm 确认无法正常工作
- 部分视图在 ajax.beginform 之后不会更新
- Ajax.BeginForm 强制完全回发
- Ajax.BeginForm() 不会回发到控制器
- 查看从 Ajax.BeginForm 返回的数据
- 如果使用 AJAX 呈现部分视图,则 Ajax.BeginForm 发布两次
- 使用JavaScript提交Ajax.BeginForm()
- 在Ajax.BeginForm的“确认”对话框中添加对象routedValue
- AJAX.beginform is javascript,isn't it?
- 使用Ajax.BeginForm更新表单
- 当Ajax.BeginForm时在Internet Explorer 8上添加的jQuery属性
- Ajax.BeginForm淡出不起作用
- 无法使用 Ajax.BeginForm() 异步上传文件
- OnSuccess脚本在我的Ajax.BeginForm正在传递错误的数据