C# Mvc.net 3.0 Razor Leyout布局视图使用介绍
2012-10-08 23:55
676 查看
测试需要一个主页入口点,这里使用默认的路由设置就可以测试。
1.首先在默认的 homecollector 中建立一个 action,如下
public ActionResult index()
{
return View();
}
2.在 view/home 文件件下建立 MyLeyout.cshtml 视图,内容如下
@{
//some code
}
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
</head>
<body>
<div>
开始渲染Body<br />
@RenderBody()
渲染Body结束<br />
<br />
开始渲染 ViewPage1<br />
@RenderPage("~/Views/Home/ViewPage1.cshtml")
结束渲染 ViewPage1<br />
<br />
开始渲染 ViewPage2<br />
@RenderPage("~/Views/Home/ViewPage2.cshtml")
结束渲染 ViewPage2<br />
<br />
学习Section用法了<br />
开始渲染Section<br />
声明方式1(推荐):SectionA:<br />
@*引用页无标记也不会异常,第二个叁数如果为 true 则要求引用页必须存在 SectionA 标签*@
@RenderSection("SectionA", false)
-------<br />
声明方式2:SectionB:<br />
@{
//判断是否存在标记 SectionB
if (IsSectionDefined("SectionB"))
{
@RenderSection("SectionB")
}
}
-------<br />
声明方式3:SectionC:<br />
@{
//我们测试没有定义过的 SectionC,页面将出现异常
//@RenderSection("SectionC") //测试时将注释打开
}
-------<br />
渲染Sction结束<br />
</div>
</body>
</html>
3.在view/home 文件夹下建立一个 index.cshtm 文件,内容如下
@{
ViewBag.Title = "首页";
Layout = "~/Views/home/MyLeyout.cshtml";
}
<!--
渲染整个页面到 ~/Views/EBusiness/MyLeyout.cshtml 中的 RenderBody() 占位符
-->
<div>
这里就是渲染Body啦.
</div>
<!--
~/Views/EBusiness/MyLeyout.cshtml 中的 RenderSection("SectionA", false) 占位符需要的 siction 定义
-->
@section SectionA{
<div>这里是SectionA: 在 index 页中声明的</div>
}
<!--
~/Views/EBusiness/MyLeyout.cshtml 中的 RenderSection("SectionB") 占位符需要的 siction 定义,注意使用 IsSectionDefined("SectionB") 判断一下
-->
@section SectionB{
<div>这里是SectionB: 也是在 index 页中声明的</div>
}
<!--
~/Views/EBusiness/MyLeyout.cshtml 中的 RenderSection("SectionC") 占位符,
这里没有定义,如果代码注释打开就报异常了,以为没有做判断占位符是否存在。
-->
4.同上位置,建立 ViewPage1.cshtml 视图
@{
//ViewBag.Title = "首页";
Layout = null;
}
<!--
渲染整个页面到 ~/Views/EBusiness/MyLeyout.cshtml 中的 RenderPage() 占位符 ,RenderPage 占位符可以使用多次
-->
<div>
这里就是渲染 viwpage1.chatml 的所有内容了
</div>
5.同上位置,建立 ViewPage2.cshtml 视图 ,证明 RenderPage() 占位符可以多次声明
@{
//ViewBag.Title = "首页";
Layout = null;
}
<!--
渲染整个页面到 ~/Views/EBusiness/MyLeyout.cshtml 中的 RenderPage() 占位符 ,RenderPage 占位符可以使用多次
-->
<div>
这里就是渲染 viwpage2.chatm2 的所有内容了
</div>
万事具备就差测试了,录入网址 http://170.0.0.1/home/index
看着代码又多又乱,看看注释应该可以明白的
1.首先在默认的 homecollector 中建立一个 action,如下
public ActionResult index()
{
return View();
}
2.在 view/home 文件件下建立 MyLeyout.cshtml 视图,内容如下
@{
//some code
}
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
</head>
<body>
<div>
开始渲染Body<br />
@RenderBody()
渲染Body结束<br />
<br />
开始渲染 ViewPage1<br />
@RenderPage("~/Views/Home/ViewPage1.cshtml")
结束渲染 ViewPage1<br />
<br />
开始渲染 ViewPage2<br />
@RenderPage("~/Views/Home/ViewPage2.cshtml")
结束渲染 ViewPage2<br />
<br />
学习Section用法了<br />
开始渲染Section<br />
声明方式1(推荐):SectionA:<br />
@*引用页无标记也不会异常,第二个叁数如果为 true 则要求引用页必须存在 SectionA 标签*@
@RenderSection("SectionA", false)
-------<br />
声明方式2:SectionB:<br />
@{
//判断是否存在标记 SectionB
if (IsSectionDefined("SectionB"))
{
@RenderSection("SectionB")
}
}
-------<br />
声明方式3:SectionC:<br />
@{
//我们测试没有定义过的 SectionC,页面将出现异常
//@RenderSection("SectionC") //测试时将注释打开
}
-------<br />
渲染Sction结束<br />
</div>
</body>
</html>
3.在view/home 文件夹下建立一个 index.cshtm 文件,内容如下
@{
ViewBag.Title = "首页";
Layout = "~/Views/home/MyLeyout.cshtml";
}
<!--
渲染整个页面到 ~/Views/EBusiness/MyLeyout.cshtml 中的 RenderBody() 占位符
-->
<div>
这里就是渲染Body啦.
</div>
<!--
~/Views/EBusiness/MyLeyout.cshtml 中的 RenderSection("SectionA", false) 占位符需要的 siction 定义
-->
@section SectionA{
<div>这里是SectionA: 在 index 页中声明的</div>
}
<!--
~/Views/EBusiness/MyLeyout.cshtml 中的 RenderSection("SectionB") 占位符需要的 siction 定义,注意使用 IsSectionDefined("SectionB") 判断一下
-->
@section SectionB{
<div>这里是SectionB: 也是在 index 页中声明的</div>
}
<!--
~/Views/EBusiness/MyLeyout.cshtml 中的 RenderSection("SectionC") 占位符,
这里没有定义,如果代码注释打开就报异常了,以为没有做判断占位符是否存在。
-->
4.同上位置,建立 ViewPage1.cshtml 视图
@{
//ViewBag.Title = "首页";
Layout = null;
}
<!--
渲染整个页面到 ~/Views/EBusiness/MyLeyout.cshtml 中的 RenderPage() 占位符 ,RenderPage 占位符可以使用多次
-->
<div>
这里就是渲染 viwpage1.chatml 的所有内容了
</div>
5.同上位置,建立 ViewPage2.cshtml 视图 ,证明 RenderPage() 占位符可以多次声明
@{
//ViewBag.Title = "首页";
Layout = null;
}
<!--
渲染整个页面到 ~/Views/EBusiness/MyLeyout.cshtml 中的 RenderPage() 占位符 ,RenderPage 占位符可以使用多次
-->
<div>
这里就是渲染 viwpage2.chatm2 的所有内容了
</div>
万事具备就差测试了,录入网址 http://170.0.0.1/home/index
看着代码又多又乱,看看注释应该可以明白的
相关文章推荐
- C# Mvc.net 3.0 Razor Leyout布局视图使用介绍
- ASP.NET MVC 3.0 Razor视图如何展示多实体
- 逃脱Asp.Net MVC框架/枷锁,使用Razor视图引擎
- Asp.net MVC 3 Razor 视图引擎 中使用@输出的内容都会被自动进行HTML编码 问题的解决办法
- ASP.NET MVC 3 Razor 视图引擎 布局
- 逃脱Asp.Net MVC框架/枷锁,使用Razor视图引擎
- C# .Net MVC Razor 视图静态分页导航栏生成器
- C# .Net MVC Razor 视图静态分页导航栏生成器
- Asp.net MVC 3 Razor视图引擎的使用(一)
- ASP.NET MVC 3.0:Razor视图引擎如何展示多实体
- (转)Asp.Net Mvc视图引擎Razor介绍
- 逃脱Asp.Net MVC框架/枷锁,使用Razor视图引擎
- ASP.NET MVC 3 Razor 视图引擎 基本语法
- ASP.NET MVC 教程 - 使用实体框架创建模型类(C#)
- 不同版本的 IIS 中使用 ASP.NET MVC(C#)【转】
- 介绍“Razor”— ASP.NET的一个新视图引擎
- 我要学ASP.NET MVC 3.0(十): MVC 3.0 使用 Forms身份验证
- ASP.NET MVC 自定义Razor视图WorkContext
- Razor and ASP.NET MVC 3.0