当前位置 : 主页 > 网络编程 > ASP >

Razor in ASP.NET MVC 3.0

来源:互联网 收集:自由互联 发布时间:2021-06-24
Razor in ASP.NET MVC 3.0 ASP.NET MVC 3.0中,提供了新的View Engine:Razor,使用的方式和以往没有差别很大,不过写法却显得的更简单俐落;以往费事的% %,被简化成短短的@,如果需要声明多行,

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, Func
  

 
  
  template) { 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

网友评论