全局ajaxError事件

时间:2013-04-11 19:01:55

标签: asp.net-mvc asp.net-mvc-3 jquery

我的base.master中有一个全局的ajaxError事件,类似这样的

$(document).ajaxError(function(event, request, settings,thrownError) {
    $("#results").append( "<li>some error msg.</li>" );
    });

但我不想使用&#34;#results&#34;。我希望它是动态的。我希望该函数始终在update-target元素中显示错误消息。如何在错误事件中找到我的ajax调用中使用的UpdateTarget Id?感谢。

using (Ajax.BeginForm("action", null, 
           new AjaxOptions { 
           UpdateTargetId = "results", <--find this element in my error event
           LoadingElementId = "loading", 

1 个答案:

答案 0 :(得分:1)

我不熟悉ASP,但ajaxError会收到在恰当命名的ajax变量中传递给settings方法的所有设置。

所以如果你有这样的AJAX调用:

$.ajax({
    url: '/some/url.asp',
    data: myData,
    resultsEle: $('#myResults')
});

您可以像resultsEle这样访问ajaxError

$(document).ajaxError(function(event, request, settings, thrownError) {
    settings.resultsEle.append( "<li>some error msg.</li>" );
});

同样,我不熟悉你在ASP代码中调用AJAX方法的方式,但我猜你可以通过这种方式获取元素:

$(document).ajaxError(function(event, request, settings, thrownError) {
    $('#'+settings.UpdateTargetId).append( "<li>some error msg.</li>" );
});