博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET MVC学习之母版页和自定义控件的使用
阅读量:5352 次
发布时间:2019-06-15

本文共 2227 字,大约阅读时间需要 7 分钟。

1.母板页_Layout.cshtml

类似于传统WebForm中的.master文件,起到页面整体框架重用的目地

1.母板页代码预览

1  2  3  4 @ViewBag.Title 5 
6 7 8 9 10 @RenderBody() 11 12

2.子页面标题的设置

虽然多个子页面可以引用同一个母板页,但不同的页面标题可以单独设置。@ViewBag.Title 即是一个标题的占位符,在Control里或页面中给该标题的变量赋值。

1         //LayoutDemo_01 2         public ActionResult LayoutDemo_01() 3 { 4 ViewBag.Title = "布局页一"; 5 return View(); 6 } 7 8 //LayoutDemo_02 9 public ActionResult LayoutDemo_02() 10 { 11 ViewBag.Title = "布局页二"; 12 return View(); 13 }
1 @{2     ViewBag.Title = "布局页一";3 }

3.子页面主内容的设置 页面主内容是由@RenderBody()来标识的。子页面的内容直接替换到该方法处。

1 //第一个页面 2 @{ 3 Layout = "~/Views/Shared/_Layout.cshtml"; 4 } 5 这里是layoutg一的内容 6 7 8 //第二个页面 9 @{ 10 Layout = "~/Views/Shared/_Layout.cshtml"; 11 } 12 这里是layout二的内容

4.子页面其他内容的设置

由于母板面的内容大多数不会是连续的,如下代码所示:

1  2  3  4 @ViewBag.Title 5 
6 7 8 9
10 @* 主要部分*@ 11 @RenderBody() 12
13
14 @*其他部份内容*@ 15 @RenderSection("MasterPart", false) 16 17

此时我们使用@RenderSection定义占位符子页面实现,@RenderSection方法接受两个参数:("名称","是否是必须的"),如果是必须的那么子页面必须实现该方法,否则会报错。 子页面代码如下:

1 @{2     Layout = "~/Views/Shared/_Layout.cshtml";3 } 4 这里是layoutg一的内容 5 @section MasterPart{ 6 这里是母板页的第二部分 7 }

@section+空格+名称{内容}来实现母板页内容的替换。 5.其他注意项

母板页的命名可以随意,但建议以"_"下划线开头。

6.整体运行效果

2.用户自定义控件

 创建时选中Create as a patial view

创建后在页面中填写如下代码:

使用时代码如下:

1 @{2     Layout = "~/Views/Shared/_Layout.cshtml";3 } 4 @Html.Partial("~/Views/Shared/_UserControl.cshtml") 5 这里是layoutg一的内容

运行效果如下:

3.默认Layout引用的使用(_ViewStart.cshtml)

当我们的页面未指定Layout的时候,如果项目在全局或在同文件夹内存在_ViewStart.cshtml时该页面的Layout会自动继承自_ViewStart.cshtml,如果不同的文件夹层级都存在_ViewStart.cshtml,则继承离该页面最近的一个。_ViewStart.cshtml是一个特殊的文件。

1.使用全局_ViewStart.cshtml

_ViewStart.cshtml的文件位置和内容,如下图所示:

我们在User文件夹里建立页面LayoutDemo_03.cshtml,如下图所示:

在LayoutDemo_03.cshtml并没有定义Layout,但实际上他的Layout继承了_ViewStart.cshtml为:

1 @{2     Layout = "~/Views/Shared/_Layout.cshtml";3 }

运行效果如下:

2.使用文件夹内的_ViewStart.cshtml

在Shared文件夹内新建文件_LayoutNew.cshtml,如下图所示:

我们在上面加了区别的文字"新的布局",然后在User文件夹内新建文件_ViewStart.cshtml,如下图所示:

我们把User文件夹内的_ViewStart.cshtml的内容修改为Layout = "~/Views/Shared/_LayoutNew.cshtml";,此时我们再次浏览LayoutDemo_03.cshtml的时候,该页面的布局的引用会继承User文件夹内的_ViewStart.cshtml,运行效果如下:

 说明:如果不想页面使用任何母板页和布局页,则需要设置Layout = null,如下所示:

1 @{2     Layout = null;

 

转载于:https://www.cnblogs.com/lizhenlin/p/5388982.html

你可能感兴趣的文章
Flutter学习笔记(一)
查看>>
iOS10 国行iPhone联网权限问题处理
查看>>
洛谷 P1991 无线通讯网
查看>>
[HIHO1184]连通性二·边的双连通分量(双连通分量)
查看>>
Codeforces Round #178 (Div. 2) B. Shaass and Bookshelf 【动态规划】0-1背包
查看>>
SparkStreaming 源码分析
查看>>
【算法】—— 随机音乐的播放算法
查看>>
mysql asyn 示例
查看>>
DataGrid 点击 获取 行 ID
查看>>
git 使用
查看>>
边框圆角方法
查看>>
asp.net WebApi自定义权限验证消息返回
查看>>
php中eval函数的危害与正确禁用方法
查看>>
20172315 2017-2018-2 《程序设计与数据结构》第十一周学习总结
查看>>
MySQL添加、修改、撤销用户数据库操作权限的一些记录
查看>>
关于谷歌浏览器Chrome正在处理请求的问题解决
查看>>
Git核心技术:在Ubuntu下部署Gitolite服务端
查看>>
平面波展开法总结
查看>>
建造者模式
查看>>
ArraySort--冒泡排序、选择排序、插入排序工具类demo
查看>>