Javascript 为OnSuccess、OnFailure、OnComplete和OnBegin提供回调参数时,使用Ajax.BeginForm时出错
我正在尝试使用Ajax表单,每当我向任何AjaxOptions属性提供回调方法时,都会出现此错误 Microsoft JScript运行时错误:对象不支持此属性或方法 如果我没有为任何属性(OnSuccess、OnFailure、OnComplete或OnBegin)提供回调函数,则不会发生错误,表单也不会正确发布 这是我的密码Javascript 为OnSuccess、OnFailure、OnComplete和OnBegin提供回调参数时,使用Ajax.BeginForm时出错,javascript,asp.net-mvc,asp.net-ajax,Javascript,Asp.net Mvc,Asp.net Ajax,我正在尝试使用Ajax表单,每当我向任何AjaxOptions属性提供回调方法时,都会出现此错误 Microsoft JScript运行时错误:对象不支持此属性或方法 如果我没有为任何属性(OnSuccess、OnFailure、OnComplete或OnBegin)提供回调函数,则不会发生错误,表单也不会正确发布 这是我的密码 <% using (Ajax.BeginForm("someAction", "SomeController", new AjaxOptions() {
<% using (Ajax.BeginForm("someAction", "SomeController", new AjaxOptions() {
HttpMethod="POST",
UpdateTargetId = "feedbackMsg",
OnSuccess = "ShowConfirmationMessage"
}))
{ %>
我猜问题出在Function.createDelegate。因为当我删除OnSuccess属性时,function.CreateDelegate不会被渲染,并且一切正常
不管怎么说,我都快疯了,任何帮助都将不胜感激。谢谢大家! 确保同时包含以下脚本:
- MicrosoftAjax.js
- MicrosoftMvcAjax.js
- MicrosoftAjax.js
- MicrosoftMvcAjax.js
- 或者更好……如果您使用的是MVC 3,请确保包含jquery.unobtrusive-ajax.js。它将呈现出你的表单标签清理器
此外,您可能不希望同时包含UpdateTargetId和OnSuccess。我花了3个小时才弄明白,如果我的控制器返回json,那么如果我在Ajax.BeginForm.中定义UpdateTargetId,我的onsuccess javascript回调函数就永远不会被命中,或者更好……如果您使用的是MVC 3,请确保包含jquery.unobtrusive-Ajax.js。它将呈现出你的表单标签清理器
此外,您可能不希望同时包含UpdateTargetId和OnSuccess。我花了3个小时才弄明白,如果我的控制器返回json,那么如果我在Ajax.BeginForm.中定义UpdateTargetId,我的onsuccess javascript回调函数就永远不会被击中,这可能是经过了2个小时的反复尝试(并且在大约5分钟的时间内完全知道如何在jquery中实现这一点)添加这些愚蠢的.js文件是我成功的原因…经过大约2个小时的尝试和错误之后(并且知道如何在大约5分钟的时间内直接在jquery中完成),添加这些愚蠢的.js文件是我成功的原因。。。
<form action="/Review/SaveQualityScore"
method="post"
onclick="Sys.Mvc.AsyncForm.handleClick(this, new Sys.UI.DomEvent(event));"
onsubmit="Sys.Mvc.AsyncForm.handleSubmit(this, new Sys.UI.DomEvent(event),
{
insertionMode: Sys.Mvc.InsertionMode.replace,
httpMethod: 'POST',
updateTargetId: 'feedbackMsg',
onSuccess: Function.createDelegate(this, ShowConfirmationMessage)
});"
>