ASP.NET MVC 3 - 启用了不引人注目的javascript,ajaxComplete一次性激活,再也没有

时间:2011-06-10 17:20:23

标签: asp.net-mvc-3 unobtrusive-javascript

在不引人注目的javascript之前,我使用以下寄存器处理了ajax完成事件:

Sys.Net.WebRequestManager.add_completedRequest(myHandler);

每次ajax请求完成时,都会触发此事件处理程序。我还在$(document).ready()中有一个 ajaxComplete 事件绑定,只通过jQuery处理ajax调用:

$.ajaxComplete(function (e, xhr, settings) {
    myHandler(xhr)
});

哪个也很棒。但是当我在ASP.NET MVC 3中启用不显眼的javascript时,我得到了一个不同的行为。它在第一次ajax调用完成时第一次触发,但在随后的ajax请求中,ajaxComplete事件再也不会触发。

现在,我知道您需要调用 $。validate.unobtrusive.parse(),以便在通过部分回发更新表单中的元素后重建验证。是否有类似的东西我需要做以确保ajaxComplete可以在后续请求中再次触发?我找不到关于此的文档。


  

仅供参考:我已经包含了所有jquery * .js库来支持不引人注目的javascript。我还包含MicrosoftMvc * .js库,以支持项目中的遗留代码。我希望将所有内容都转换成我遇到这个问题。

1 个答案:

答案 0 :(得分:0)

您需要将ajaxComplete实际附加到我认为的元素吗?

$('.info').ajaxComplete(function() {
   var info = $(this);
   info.html('Success!');
});

您只需要在生命周期内将ajaxComplete附加到元素一次。