在左边我有一些链接按钮.
在中间我有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>
解决方法
海事组织,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作为参数等.