2012-03-17 96 views
1

在我的主屏幕上,我有两个部分视图。在第一部分视图中,我有ActionLink和图像。如何在点击第一个partialView上的ActionLink后仅刷新第二个partialView。我不刷新第一个partialView,因为我不做任何更改。 -谢谢!MVC 3如何从多个视图中只刷新一个部分视图

回答

0

使用jQuery负载来重新加载所述第二部分视图

$(function(){ 

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

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

    return false; 
}); 


}); 

假设aLinkInFirstView是在第一PartialView和PartialViewDiv2锚标签的ID保存用于所述第二部分的标记在div视图。

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

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") 
} 
+0

其实控制oller行动将不得不返回一个'PartialView(“viewname”)' – 2012-03-18 01:40:29

+0

@XavierPoinas非常正确,但我认为返回视图也会做这项工作,虽然我已经编辑了答案 – Rafay 2012-03-18 07:36:22