ASP.Net MVC View(视图)
View视图职责是向用户提供界面。负责根据提供的模型数据,生成准备提供给用户的格式界面。
支持多种视图引擎(Razor和ASPX视图引擎是官方默认给出的,其实还支持其它N种视图引擎,甚至你自己都可以写一套视图引擎)
View和Action之间数据传递(前后台数据传递)
弱类型 ViewData[""]
动态型 ViewBag //dynamic
动态类型Model
后台:return View(data); //存入 ViewData.Model
前台:Model //其实就是 WebViewPage.Model
@using 命名空间
强类型View
//Control Action
public ActionResult Index()
{
return View(new User { UserName = "郭靖" });//ViewData.Model属性
}
//Index.cshtml
@model MvcApplication.Models.User
<div>@Model.UserName</div>
Razor视图引擎 语法
Razor为视图提供精简的语法,最大限度减少了语法和额外字符串
- Razor通过理解标记的结构来实现代码和标记之间的顺畅切换。
- @核心转换字符,用来 标记-代码 的转换字符串。
语境A:
@{
string schoolName="湖南第一师范";
}
语境B:
Razor引擎识别 @ 和 <>html</>
Razor 语法
Razor表达式自动使用了HTML编码
如果先向浏览器输出源html代码, 则使用System.Web.IHtmlString: @Html.Raw("<p>zouyujie</p>")
输出结果zouyujuie
html源码
JS字符串编码
<script>
alert('@Ajax.JavaScriptStringEncode(ViewBag.UserName)');
</script>
结果:
@代码块
@{ string s ="zouyujie";
int age =26;
}
@{Html.RenderPartial("TestPartial");}//调用无返回值方法
注释:@* ............*@
调用泛型方法:@(Html.SomeMethod<User>());
混合代码与文本:
@if(1==1){
<text>我要输出文本在这里!</text>
@:我要输出文本在这里!
}
@转义:@@
操作web内置对象:@Request.RawUrl @Response.Write
@作用域与html标记混合使用:
@{
string userName="刘邦";
<p>@userName</p>
}
在@作用域中输出未转义的 HTML 代码
1.使用字符串描述输出
@{
string strHtm="<p>你好~</p>";
@strHtml
}
2.使用HTMLHelper输出
@{
@Html.Raw("<p>哇哈哈哈~</p>");
}
3.使用HtmlString类输出
@{
HtmlString htm =new HtmlString("<p>哈哈</p>");
@htm
}
4.使用MvcHtmlString输出
@{
var strHtml=MvcHtmlString.Create("<p>哈哈~</p>");
@strHtml
}
数据类型转换
用As....()方法转换 ,如:@("120".AsInt())
数值类型判断
用IsInt()方法,如 @(strAge.IsInt()?"是":"否")
路径转换
用Href()方法,如: @Href("~/Home/Index");
using System.Web.WebPages;//内部 为 string 扩展了很多 As..方法
HtmlHelper重用:相当于是在 视图中定义方法
@helper List(List<string> dogs){
<ul>
@foreach (string s in dogs)
{
<li>@s</li>
}
</ul>
}
@List(new List<string>(){"ruiky","lisa","lucy"})
Razor 布局 – 整体视图模板
应用整体模板视图
1.@RenderBody() //模板页里的占位符
2.@{
Layout = "~/Views/Shared/SiteLayout.cshtml";
View.Title="User List";
}
<p>子页所有html代码都将替换到 模板页的@RenderBody()处</p>
应用整体视图模板 - 多个"占位符"
3.模板页多个节:
<footer>@RenderSection("Footer")</footer>
子页面定义节点:
@section Footer{
<b>我们也要加入了!</b>
}
模板页判断是否为布局节方法,IsSectionDeined
@if(IsSectionDefined("Footer")){
@RenderSection("Footer");
}else
{
<b>“子页面”没有Footer~</b>
}
Razor 布局 – ViewStart
每个子页面都使用一个Layout指定布局。如果多个视图都用同一个布局就会产生冗余,修改维护麻烦。
_ViewStart.cshtml 可解决此问题
此文件代码优先于同目录及子目录下任何视图代码执行
View目录下自动添加的_ViewStart.cshtml
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
有了它,就可以为某个文件夹下所有的视图添加相同的视图布局了
因为这个文件代码优先于任何视图,所以任何一个视图都可以重写LayOut属性来指定自己想要的模板布局页面。
Razor 布局 – 分布视图
Action方法可以通过 PartialView方法以 PartialViewResult形式返回分部视图
一般用在Ajax请求部分代码
Controller
public ActionResult PartialViewTest()
{
ViewData["Msg"] = "Hello world!";
return PartialView();
}
PartialViewTest.cshtml
<div>@ViewData["Msg"] </div>
Index.cshtml
<div id="divTest">
@{Html.RenderAction("PartialViewTest");}
</div>
视图引擎
“仅仅是一个尖括号生成器而已”
此图仅仅为了强调:
1.视图引擎发挥作用的地方,它紧跟在Action方法执行后.
它的目的是获取从控制器传递的数据,并生成经过格式化的输出。
2.控制器并不渲染视图,它仅仅准备数据(Model)并通过ViewResult 实例来决定调用哪个视图。
视图引擎接口 IViewEngine
public interface IViewEngine {
ViewEngineResult FindPartialView(ControllerContext controllerContext, string partialViewName, bool useCache); ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache); void ReleaseView(ControllerContext controllerContext, IView view);
}
ViewEngineResult属性
aaarticlea/png;base64,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" alt="" />
其他视图引擎:Spart,NHaml,Brail,StringTemplate,NVelocity
视图 IView
public interface IView {
void Render(ViewContext viewContext, TextWriter writer);
}
aaarticlea/png;base64,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" alt="" />
MVC视图的“秘密”
其实我们的cshtml视图页面,在被访问的时候,也编译成了页面类,继承于:WebViewPage<T>
在View页面,添加代码
<div>@{Response.Write(this.GetType().Assembly.Location);}</div>
运行结果:C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\c8628c1b\abb1511c\App_Web_ceor5kns.dll
用reflector反编译工具查看这个dll
cshtml页面里的所有的代码,都编译到 这个类的Excute方法里了
本系列目录:ASP.NET MVC4入门到精通系列目录汇总