如何使用Ajax.BeginForm OnSuccess和OnFailure方法?

2021/01/31 08:11 · jquery ·  · 0评论

我用这个Ajax.BeginForm

    <% using( Ajax.BeginForm( "Create","Mandate",
                       new AjaxOptions( ) {
                           OnSuccess = "GoToMandates",
                           OnFailure = "ShowPopUpError"
                       } ) ) {%>

<% } %>

我需要在控制器中编写什么才能捕获此OnSucces和OnFailure。

因为OnSuccess我需要显示成功消息

OnFailure我需要显示其他消息。

在我的控制器中

Public ActionResult GetSomething(FromCollection collection)
{
     if(exists == null)
     {
          //OnSuccess
     }
     else
     { 
         //OnFailure
     }
}

anydboy可以帮助我吗..如何抓住这个?

谢谢

OnSuccess和OnFailure看起来像他们期望的javascript回调函数。

<script type="text/javascript">
    function handleError(ajaxContext) {
    var response = ajaxContext.get_response();
    var statusCode = response.get_statusCode();
    alert("Sorry, the request failed with status code " + statusCode);
    }
</script>

<%= Ajax.ActionLink("Click me", "MyAction",
new AjaxOptions { UpdateTargetId = "myElement", OnFailure = "handleError"}) %>

Pro ASP.NET Framework页面425中的示例

ASP.NET AjaxOptions类别


添加了控制器示例

最简单的方法就是我在这里得到的,但是我建议使用某种ViewModel来查看强类型的mvc视图,并可能考虑将jQuery用于ajax。话虽如此,这有望为您服务。

if (exists)
{
  ViewData["msg"] = "Some Success Message";
}
else
{
  ViewData["msg"] = "Some Error Message";
}

return View();

在您看来

<div id="myResults" style="border: 2px dotted red; padding: .5em;">
    <%: ViewData["msg"]%>
</div>

我也在寻找相同的答案,但是看起来Ajax.BeginForm()..的事件没有得到很好的记录,或者需要更多的自我实验才能确定何时调用这些onSuccess和onFailure事件。但是我有一个非常简单明了的替代方法,就是不用麻烦设置AjaxOptions的onSuccess和onFailure属性。相反,在Controller的action方法中,只需将ActionResult作为JavaScriptResult发送即可调用onSuccess(),onFailure()javascript方法。例如,

Public ActionResult Create(FromCollection collection)
{
     if(exists == null)
     {
          //OnSuccess
           return JavaScript("OnSuccess();");
     }
     else
     { 
         //OnFailure
         return JavaScript("OnFailure();");
     }
}

而且Ajax.BeginForm标签应该看起来像

 <%
  using( Ajax.BeginForm( "Create","Mandate", new AjaxOptions())) // see, no OnSuccess and OnFailure here.

{%>

<% } %>

现在,您需要在页面中定义OnSuccess()和OnFailure()javascript方法,仅此而已。

编辑:

我当时在想,如果没有从服务器抛出异常,则默认情况下将调用OnSuccess()。如果从服务器抛出任何异常,则将调用OnFailure()。我还没有测试这个概念。如果是这样,那么练习发送JavaScript(“ OnSuccess();”)和JavaScript(“ OnFailure();”);并不是一个好主意。从服务器,因为这不是遵循的好模式。

本文地址:http://jquery.askforanswer.com/ruheshiyongajax-beginform-onsuccessheonfailurefangfa.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!