ASP.NET(二十)---MVC分部视图

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.Namespan>
    }
    
  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>
    

两种分部视图比较

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

你可能感兴趣的:(MVC模式,MVC分部视图)