部分视图在Jquery Ajax Post之后刷新

在我的c#MVC4应用程序中,我正在处理两个部分视图。 部分视图1位于具有id Partial_Analysis的div中,Partial View 2位于具有id Display_Average的div中。 每个视图都包含一个datatables.net数据表。 当在部分视图1中的表中选择行时,生成jquery ajax post,其使得部分视图2刷新,其中更新的数据表显示基于在部分视图1中进行的行选择的结果。

 $(document).ready(function () { $('.rowselection').click(function (e) { var tdata = $('#form1').serialize(); $.ajax({ type: "POST", data: tdata, url: "Home/PartialAverage", success: function (result) { success(result); } }); }); function success(result) { $("#Display_Average").html(result); } });  

单击特定按钮时,将刷新部分视图1。

  $(document).ready(function () { $('#ChangeName').click(function (e) { var tdata = $('#form1').serialize(); var origname = $('#NameDiv').find('input[name="Name"]').first().val(); var newname = $('#NameDiv').find('input[name="updatedName"]').first().val(); $.ajax({ type: "POST", data: { mCollection: tdata, Name: origname, updatedName: newname }, url: "Home/ChangeName", success: function (result) { success(result); } }); }); function success(result) { $("#Partial_Analysis").html(result); } });  

在刷新局部视图1时,我希望第二部分视图也刷新。 我试过这个导致无限循环。

  $(document).ready(function () { $('#Partial_Analysis').ajaxSuccess(function (e) { var tdata = $('#form1').serialize(); $.ajax({ type: "POST", data: { mCollection: tdata, }, url: "Home/PartialAverage", success: function (result) { success(result); } }); }); function success(result) { $("#Display_Average").html(result); } });  

ajaxSuccess是一个全局处理程序,只要收到ajax调用的响应,就会调用它。 在其中执行另一个ajax调用肯定会导致无限循环。

这里最好的选择可能是在第一个局部视图的success处理程序中更新第二个表:

 function success(result) { $("#Partial_Analysis").html(result); reloadDisplayAverage(); } function reloadDisplayAverage() { var tdata = $('#form1').serialize(); $.ajax({ type: "POST", data: { mCollection: tdata, }, url: "Home/PartialAverage", success: function (result) { success(result); } }); function success(result) { $("#Display_Average").html(result); } } 

如果响应是ajax响应……那么

  $.ajax({ url: 'Home/PartialAverage', data: {mCollection: tdata,}, type: 'POST', success: function (result) { $("#Display_Average").html(data); } }); 

这应该对你有用..这对我有用….