asp.net-mvc – 如何刷新多个部分视图点击Ajax.Actionlink

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 如何刷新多个部分视图点击Ajax.Actionlink前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_403_1@我在View上使用了多个部分视图.
在左边我有一些链接按钮.

在中间我有2个部分视图让我们假设Up和Down
我可以更新Up部分视图
现在我想更新下来部分视图点击相同的链接按钮

我只能在Ajax.ActionLink按钮中发送一个UpdateTargetID
但我想更新2 Partialview一个同一按钮的clcik.

1)有什么办法可以在Ajax.ActionLink中传递多个UpdateTargetID
要么
2)我可以在家庭控制器中返回多个局部视图
或您建议的任何其他方式
回复

感谢大家回复
让我告诉你我做了什么,以便在单击时刷新多个部分视图
这是我用来点击的Action Link
这里我使用这个Action的OnSucess功能链接来更新,这个Action链接是部分的

<%= Ajax.ActionLink("Select","Employee",new { Id = Employee.EmployeeID },new AjaxOptions { UpdateTargetId = "EmployeeDiv",HttpMethod = "Post",OnSuccess = "function(){EmployeeHistory(-2," + Employee.EmployeeID.ToString() + ");}" })%>

这是我从部分视图中调用的一个javascript

function  EmployeeHistory(EmployeeID) {
    var url = '<%= Url.Action("PartialviewAction","ControllerName") %>'
    $('#PartialviewDiv1').load(url,{ Id: EmployeeID });
    var url1 = '<%= Url.Action("PartialviewAction","ControllerName") %>'
    $('#PartialviewDiv2').load(url1,{ Id: EmployeeID });

}

这两个div在我想要更新的索引视图中

<div id="Paritalview div1"><% Html.RenderPartial("PartialViewname1"); %></div>
        <div id="Paritalview div2"><% Html.RenderPartial("PartialViewname2"); %></div>

解决方法

是的 – 不要使用Ajax.ActionLink.

海事组织,MS Ajax库与Web Forms一样blo肿.

保持简单 – 使用jQuery – 然后你有完全控制:

$(function() {
   $('#somelink').click(function(e) {
      e.preventDefault();

      $.get('/controller/action1',function(data) {
         $('#up').html(data);
      });

      $.get('/controller/action2',function(data) {
         $('#down').html(data);
      });
   });
});

但是,由于您正在更新这两个面板,我建议将这两个中间面板的局部视图包含在自己的面板中 – 然后通过单个操作方法进行投放 – 这样您只需要一个ajax调用.

编辑

如@FelixM所提到的,您应该使用Url.Action或Url.RouteUrl来生成AJAX调用的URL,因此如果您的路由发生更改,那么您的JS不需要,例如:

.get(‘@ Url.Action(‘Controller’,’Action1′)’,function(data)

要么

.get(‘@ Url.RouteUrl(‘SomeNamedRoute’)’,function(data)

如果将此脚本放在外部文件中,那么您需要使用一种技术来设置主视图中的URL,然后从外部变量读取.

这些技术包括JavaScript变量,隐藏字段,传递URL作为参数等.

猜你在找的asp.Net相关文章