我也寻找相同的答案,但看起来像Ajax.BeginForm()..的事件的都有详细的记载或需要更多的自我实验发现当这些onSuccess和onFailure事件被调用时。但是我得到了一个非常简单直接的选择,不用担心设置AjaxOptions的Success和onFailure属性。相反,在您的Controller的操作方法中,只需通过将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();”)不是一个好主意。从服务器,因为这不会是一个很好的模式。