MVC 3如何从多个视图中只刷新一个部分视图
问题描述:
在我的主屏幕上,我有两个部分视图。在第一部分视图中,我有ActionLink和图像。如何在点击第一个partialView上的ActionLink后仅刷新第二个partialView。我不刷新第一个partialView,因为我不做任何更改。 -谢谢!MVC 3如何从多个视图中只刷新一个部分视图
答
使用jQuery负载来重新加载所述第二部分视图
$(function(){
$("#aLinkInFirstView").click(function(){
$("#PartialViewDiv2").load(@Url.Action("action_for_second_view", "your_controller"));
return false;
});
});
假设aLinkInFirstView是在第一PartialView和PartialViewDiv2锚标签的ID保存用于所述第二部分的标记在div视图。
答
因为你还没有共享任何代码,你可以尝试包装你的第二个部分的包装内DIV例如
<div id="secondpartial">
@RenderPartial("partialName")
</div>
让我们假设里面的第一部分的链路是否具有id="firstPartialLink"
<a href="#" id="firstPartialLink">Refresh Second Partial</a>
附加一个click事件处理函数,
$(function(){
$("#firstPartialLink").click(function(e){
e.preventDefault();
$.ajax({
url:'@Url.Action("SecondPartialActionResult","Controller")',
type:'GET'
dataType:'html',
success:function(data){
$("#secondpartial").html(data);
},
error:function(jXhr){
if(typeof console !='undefined')
console.log(jXhr.responseText);
}
});
});
});
的ActionResult的会是什么样
public ActionResult SecondPartialActionResult(){
return PartialView("viewname")
}
其实控制oller行动将不得不返回一个'PartialView(“viewname”)' – 2012-03-18 01:40:29
@XavierPoinas非常正确,但我认为返回视图也会做这项工作,虽然我已经编辑了答案 – Rafay 2012-03-18 07:36:22