MVC 3如何从多个视图中仅刷新一个局部视图

时间:2012-03-17 20:14:26

标签: asp.net-mvc-3

在我的主屏幕上,我有两个局部视图。在第一个局部视图中,我有ActionLink和图像。单击第一个partialView上的ActionLink后,如何仅刷新第二个partialView。我没有刷新第一个partialView,因为我没有对其进行任何更改。 -谢谢!

2 个答案:

答案 0 :(得分:3)

由于你还没有共享任何代码,你可以尝试将第二个部分包装在包装器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")
}

答案 1 :(得分:0)

使用jQuery load重新加载第二个局部视图

$(function(){

 $("#aLinkInFirstView").click(function(){

    $("#PartialViewDiv2").load(@Url.Action("action_for_second_view", "your_controller"));

   return false;
 });


});

假设 aLinkInFirstView 是第一个PartialView中锚标记的id, PartialViewDiv2 是保存第二个部分视图标记的div。

http://api.jquery.com/load/