分部视图简介
- 将页面中公共内容封装的视图技术,实现内容的重用(和母版页不同)
- 可以出现在其他视图内的"任何位置",相当于ASP.NET Webform中的“用户控件”
分部视图的使用
- 编写分部视图和普通视图实现方式类似
@model Model.UserInfor
<style>
.infor{
display:block;
width:200px;
height:50px;
background-color:aqua;
color:red;
}
</style>
@if (Model!=null)
{
<span class="infor">@Model.Name</span>
}
2.在主视图中的使用地方添加分部视图
使用专门的HtmlHelper方法
<h2>当前用户:@Html.Action("GetCurrentUser","Home")</h2>
3.在控制器中添加对应的动作方法并传递参数
[Authorize]
public ActionResult GetCurrentUser()
{
UserInfor user = (UserInfor)TempData["CurrentUser"];
TempData["CurrentUser"] = user;
//返回分部视图
return PartialView("PartialPage",user);
}
编写分部视图
- 在Shared文件夹下添加分部视图
- 在控制器中添加分部视图的动作方法时使用return PartialView()返回视图
- 在主视图中需要添加分部视图的地方使用htmlhelper的指定方法可以使用@Html.Action,通过请求控制器的动作方法返回分部视图。也可以直接调用@Html.Partial方法显示分部视图,这种方法直接传递的是分部视图名称和数据模型,而不用动作方法
<h3>当前用户:@Html.Partial("PartialPage",(Model.UserInfor)TempData["CurrentUser"])</h3>
两种分部视图比较
调用分部视图 | 调用动作方法 |
---|---|
只需要实现分部视图 | 需要实现分部视图和动作方法 |
只可以在容器视图运行,和容器视图耦合高 | 可以独立运行,模块化高 |
使用不需要动态数据、显示静态的内容 | 使用需要数据、显示动态变化的内容 |