首页 文章

ASP.NET MVC3 AJAX.BeginForm AjaxOptions OnSuccess OnFailure问题

提问于
浏览
13

我的问题是调用OnFailure回调的条件是什么,运行时如何知道ajax调用失败(ajax帮助程序使用一些http响应状态代码来指示它会是什么呢?) . 如果更新UpdateTargetId的html,无论ajax调用失败还是成功,那么我应该如何正确处理错误呢 . 非常困惑...

4 回答

  • 4
    <script type="text/javascript">
            function OnSuccess() {
                alert('Success');
            }
            function OnFailure(ajaxContext) {
                var response = ajaxContext.get_response();
                var statusCode = response.get_statusCode();
                alert('Failure');
                Here you can do whatever you want with the div.
                $('#targetDiv').empty();
            }
        </script>
        <div id="targetDiv">
        @using (Ajax.BeginForm("Index", "Home", 
          new AjaxOptions 
               { 
                 UpdateTargetId = "targetDiv",
                 OnSuccess ="OnSuccess",
                 OnFailure ="OnFailure" 
               })
          {
            ... 
          }
      </div>
    
  • 18

    似乎在ASP.NET MVC 4中,事情发生了一些变化 . 我必须使用以下属性来读取响应和状态:

    ajaxContext.responseJSON
    ajaxContext.responseText
    ajaxContext.status
    ajaxContext.statusText
    
  • 0

    根据官方MSDN网站:如果响应状态不在200范围内,则调用此函数 .

    AjaxOptions.OnFailure Property

  • 3

    AjaxOptions中的OnFailure查找JavaScript函数

    <script>
        function onError(ajaxContext) {
            var response = ajaxContext.get_response();
            var statusCode = response.get_statusCode();
            alert("Error occured. Status code = " + statusCode);
        }
    </script>
    

    在HTML中写这个以在出现错误时获得警报 .

    <div id="updateDiv">
    @using (Ajax.BeginForm(new AjaxOptions { HttpMethod = "Post", InsertionMode = InsertionMode.Replace, UpdateTargetId = "updateDiv", OnFailure = "onError" })) 
    { 
      @*Your HTML form code goes here.*@
    }
    </div>
    

相关问题