微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我在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作为参数等.

原文地址:https://www.jb51.cc/aspnet/250382.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐