Razor 同时支持 C# (C sharp) 和 VB (Visual Basic)。
C# 的主要 Razor 语法规则
- 
	
Razor 代码封装于 @{ ... } 中
 - 
	
行内表达式(变量和函数)以 @ 开头
 - 
	
代码语句以分号结尾
 - 
	
字符串由引号包围
 - 
	
C# 代码对大小写敏感
 - 
	
C# 文件的扩展名是 .cshtml
 
C# 实例
< !-- 单行代码块 -- >
@{ var myMessage = "Hello World"; }
< p > The value of myMessage is: @myMessage < /p > 
< !-- 多行语句代码块 -- >
@{
var greeting = "Welcome to our site!";
var weekDay = DateTime.Now.DayOfWeek;
var greetingMessage = greeting + " Here in Huston it is: " + weekDay;
}
< p > The greeting is: @greetingMessage < /p >
- 
		
Razor 代码块被包围在 @Code ... End Code 中
 - 
		
行内表达式(变量和函数)以 @ 开头
 - 
		
以 Dim 关键词来声明变量
 - 
		
字符串由引号包围
 - 
		
VB 对大小写不敏感
 - 
		
VB 文件的扩展名是 .vbhtml
 
实例
< !-- 单行代码块 -- > @Code dim myMessage = "Hello World" End Code < !-- 行内表达式或变量 -- > < p > The value of myMessage is: @myMessage < /p > < !-- 多行语句代码块 -- > @Code dim greeting = "Welcome to our site!" dim weekDay = DateTime.Now.DayOfWeek dim greetingMessage = greeting & " Here in Huston it is: " & weekDay End Code < p > The greeting is: @greetingMessage < /p >
如何工作?
Razor 是一种简单的编程语法,用于在网页中嵌入服务器端代码。
Razor 语法基于 ASP.NET 框架,该框架是微软的 .NET 框架特别为 web 应用程序开发而设计的组成部分。
Razor 语法赋予您所有 ASP.NET 的能力,但是使用了简化过的语法,如果您是初学者,则更容易学习,如果您是专家,则更有利于提高生产力。
Razor 网页可被描述为带有两种内容的 HTML 页面:HTML 内容和 Razor 代码。
当服务器读取这种页面后,在将 HTML 页面发送到浏览器之前,会首先运行 Razor 代码。这些在服务器上执行的代码能够完成浏览器中无法完成的任务,比如访问服务器数据库。服务器代码能够在页面被发送到浏览器之前创建动态的 HTML 内容。从浏览器来看的话,由服务器代码生成的 HTML 与静态 HTML 内容没有区别。
使用 Razor 语法的 ASP.NET 网页拥有特殊的文件扩展名 cshtml(使用 C# 的 Razor 语法)或者 vbhtml(使用 VB 的 Razor)。
与对象打交道
服务器代码常常涉及对象。
"Date" 对象是典型的 ASP.NET 内建对象,但是也可以自行定义对象,一张网页,一个文本框,一个文件,或者一条数据库记录,等等。
对象可以拥有能够执行的方法。数据库记录可以提供“保存”方法,图像对象可以有“旋转”方法,电子邮件对象可以提供“发送”方法,以此类推。
对象也可以有描述其特点的属性。数据库记录可以有 FirstName 和 LastName 属性。
ASP.NET Date 对象拥有 Now 属性(写为 Date.Now),Now 属性有 Day 属性(写为 Date.Now.Day)。下面的例子展示如何访问 Date 对象的某些属性:
实例
< table border="1" > < tr > < th width="100px" > Name < /th > < td width="100px" > Value < /td > < /tr > < tr > < td > Day < /td > < td > @DateTime.Now.Day < /td > < /tr > < tr > < td > Hour < /td > < td > @DateTime.Now.Hour < /td > < /tr > < tr > < td > Minute < /td > < td > @DateTime.Now.Minute < /td > < /tr > < tr > < td > Second < /td > < td > @DateTime.Now.Second < /td > < /tr > < /td > < /table >
If 和 Else 条件
动态网页的重要特性是基于条件来确定执行的动作。
实现这一点的常用方法是使用 if ... else 语句:
实例
@{
var txt = "";
if(DateTime.Now.Hour > 12)
  {txt = "Good Evening";}
else
  {txt = "Good Morning";}
}
< html >
< body >
< p > The message is @txt < /p >
< /body >
< /html >
	
读取用户输入
动态网页的另一个重要特性是读取用户的输入。
由 Request[] 函数读取输入,并由 IsPost 条件进行测试:
实例
@{
var totalMessage = "";
if(IsPost)
    {
    var num1 = Request["text1"];
    var num2 = Request["text2"];
    var total = num1.AsInt() + num2.AsInt();
    totalMessage = "Total = " + total;
    }
}
< html >
< body style="background-color: beige; font-family: Verdana, Arial; ">
< form action="" method="post">
< p > < label for="text1" > First Number: < /label > < br >
< input type="text" name="text1" /> < /p >
< p > < label for="text2" > Second Number: < /label > < br >
< input type="text" name="text2" / > < /p >
< p > < input type="submit" value=" Add " / > < /p >
< /form >
< p > @totalMessage < /p >
< /body >
< /html >
	
