ASP.NET MVC分部视图

分部视图简介

  1. 将页面中公共内容封装的视图技术,实现内容的重用(和母版页不同)
  2. 可以出现在其他视图内的"任何位置",相当于ASP.NET Webform中的“用户控件”

分部视图的使用

  1. 编写分部视图和普通视图实现方式类似
@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);
        }

编写分部视图

  1. 在Shared文件夹下添加分部视图
  2. 在控制器中添加分部视图的动作方法时使用return PartialView()返回视图
  3. 在主视图中需要添加分部视图的地方使用htmlhelper的指定方法可以使用@Html.Action,通过请求控制器的动作方法返回分部视图。也可以直接调用@Html.Partial方法显示分部视图,这种方法直接传递的是分部视图名称和数据模型,而不用动作方法
<h3>当前用户:@Html.Partial("PartialPage",(Model.UserInfor)TempData["CurrentUser"])</h3>

两种分部视图比较

调用分部视图 调用动作方法
只需要实现分部视图 需要实现分部视图和动作方法
只可以在容器视图运行,和容器视图耦合高 可以独立运行,模块化高
使用不需要动态数据、显示静态的内容 使用需要数据、显示动态变化的内容

猜你喜欢

转载自blog.csdn.net/dust__/article/details/106205780