2015-12-03 83 views
0

是否有方法将视图加载为部分(一个布局= null)或标准(其中一个在_ViewStart中具有默认布局) ?ASP.NET部分视图是否已经加载了布局,否则标准视图使用默认布局

我想完成只有当页面(部分视图)的一部分加载到当前页面,如果用户已经在某个页面有布局呈现,或加载整个页面(视图+布局),如果用户将进入页面的页面不在加载了布局的页面上(例如在地址栏中输入特定的URL时)。

回答

0

是的,但你也需要使用一些JavaScript。 Razor是一个服务器端的渲染引擎,所以一旦它离开服务器,如果你想动态加载页面的一部分,你需要客户端脚本接管并响应你的用户的点击。

在你看来,你可以有这样的事情:

<button>Load Partial</button> 
<div id="partial-content"> 

</div> 
<script src="~/Scripts/jquery-1.10.2.js"></script> 
<script> 
    $(document).ready(function() { 
     $("button").click(function() { 
      $.get("/ControllerName/MyPartial").success(function(data) { 
       $("#partial-content").html(data); 
      }); 
     }); 
    }); 
</script> 

在你的控制器:

public ActionResult MyPartial() 
{ 
    return PartialView(); 
} 

的JavaScript很简单:

等待文件准备就绪。

绑定到按钮的单击事件。

单击该按钮时,向该URL发出HTTP GET请求。

当响应返回时,设置div的html。