Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为OnSuccess、OnFailure、OnComplete和OnBegin提供回调参数时,使用Ajax.BeginForm时出错_Javascript_Asp.net Mvc_Asp.net Ajax - Fatal编程技术网

Javascript 为OnSuccess、OnFailure、OnComplete和OnBegin提供回调参数时,使用Ajax.BeginForm时出错

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() {

我正在尝试使用Ajax表单,每当我向任何AjaxOptions属性提供回调方法时,都会出现此错误

Microsoft JScript运行时错误:对象不支持此属性或方法

如果我没有为任何属性(OnSuccess、OnFailure、OnComplete或OnBegin)提供回调函数,则不会发生错误,表单也不会正确发布

这是我的密码

<% 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: &#39;POST&#39;, 
                  updateTargetId: &#39;feedbackMsg&#39;, 
                  onSuccess: Function.createDelegate(this, ShowConfirmationMessage) 
              });"
      >