Razor in ASP.NET MVC 3.0
ASP.NET MVC 3.0中,提供了新的View Engine:Razor,使用的方式和以往没有差别很大,不过写法却显得的更简单俐落;以往费事的<% %>,被简化成短短的@,如果需要声明多行,则只需要利用@{}包起来就可以了!对我来说,最棒的是排版的时候漂亮超多XD
下图是基本的Razor View:
@model 声明该页的Model类型
@Layout 声明想要套用的MasterPage名称(如果不需要套用就是null)
@View.Title 页面标题
除了在页面声明之外,你还可以用一个更简单的方式声明所有页面要套用的Layout,那就是利用_ViewStart.cshtml来声明网站所有默认套用的页面。_ViewStart.cshtml只会影响跟他同一层底下的目录,所以如果你有使用area,可以在area下的Views中,重新指定_ViewStart.cshtml。
?
_ViewStart.cshtml除了用来指定Layout以外,一些需要共同处理的东西也可以在这里设定,例如:设定CacheControl
在Master Page(其实在Razor中,一般的页面和Master Page没有特别区别,只是习惯用这种方式称呼用来套版的页面)中,以往使用ContentPlaceHolder来做为不同区块的分隔,而在Razor则是以Body及Section做为切割
在套用的时候,Body的内容不需要额外处理,而Section则只需要用@section包起来即可!(需指定Section名称)
Razor还有许多用法,像是@function,在页面中可以自订函数使用:
@functions { public static IHtmlString Print(int times, Functemplate) { StringBuilder builder = new StringBuilder(); for(int i = 0; i < times; i++) { builder.Append(template(i)); } return new HtmlString(builder.ToString()); } } @{ View.Title = "Home Page"; } @View.Message
To learn more about ASP.NET MVC visit http://asp.net/mvc.
@Print(10, @ item: #@item);
相关连结:
Introducing “Razor” – a new view engine for ASP.NET
ASP.NET MVC 3: Layouts with Razor
Inside Razor - Part 3 – Templates
Dotblogs 的标签:Razor ,ASP.NET MVC
原文:大专栏 Razor in ASP.NET MVC 3.0