因为在MSDN中没有具体的 Razor语法介绍,因而笔者的这些语法讲述也是从一些英文博客中抄来的,有错漏在所难免,请见谅。

以下是参考的博文:

ASP.NET MVC 3 Preview 1 – Razor Syntax
 

 

ASP.NET MVC 3 Preview 1 - Razor View Engine

ASP.NET MVC 3: Server-Side Comments with Razor

ASP.NET MVC 3: Layouts and Sections with Razor

ASP.NET MVC 3 and the @helper syntax within Razor

ASP.NET MVC 3: New @model keyword in Razor

ASP.NET MVC 3: Layouts with Razor

ASP.NET MVC 3: Razor’s @: and syntax

ASP.NET: Loop Statements in WebMatrix and Razor

在开始讲述语法前,先在WebMatrix中创建一个入门网站用来测试语法。

在ASP.NET中,要在页面中混入服务器端代码,一般会使用以下标记:

   
   
   
   
  1. <%   %> 

在Razor语法中,会使用“@”符号代替以上标记。
 

 

打开入门网站的Default.cshtml文件,会看到以下代码:

   
   
   
   
  1. @{    
  2.     Layout = "~/_SiteLayout.cshtml";  
  3.     Page.Title = "欢迎访问我的网站!";  
  4. }  
  5.  

  6.     利用 ASP.NET Web Pages,可以轻松地为 Web 生成基于 .NET 的功能强大的应用程序。  
  7.  

在代码中,在@符号下,大括号内的代码就相当于服务器端代码,这是Razor语法的特点。

 

大的代码块可以放到大括号内,而只是一行的代码,则可以直接使用@符号,例如在页面中显示的Page对象的Title属性的值,可以在"<.p>"之前加入以下代码:

   
   
   
   

  1.  
  2. “ 

单击运行后,在浏览器将看到如下图所示的结果。

 

 

Step by Step WebMatrix网站开发之三:Razor语法之一_第1张图片

在ASP.NET,如果要在循环内输出内容,必须写三次标记,比较麻烦,例如以下代码:

   
   
   
   
  1. <% for(int i = 0;i < 10;i++) { %>  
  2.       <%: @i %>  
  3. <% } %> 

在Razor语法中就不用那么麻烦, 因为,代码可以混在一起,靠@符号标识,例如,以上的代码可以写成:

   
   
   
   
  1. @for(int i = 0;i < 10;i++) {  
  2.   @i
     

将以上语句加入到“@Page.Title”下,刷新一下页面,就可看到在“欢迎访问我们的网站!”下列出了从0到9这10个数字。

 

对比代码,可以看出Razor语法比较美观和简单,这也是Razor语法的最大特色。