Razor支持C# (C sharp)和VB (Visual Basic) 。
主要Razor语法规则为C#
- Razor代码块被封闭在@ {...}
- 内联表达式(variables and functions)开始与@
- 代码语句结束与分号
- 变量的声明与var关键字
- 字符串括加上引号
- C#代码是大小写敏感的
- C#文件的扩展名为.cshtml
C#实施例
<!-- Single statement block -->
@{ var myMessage = "Hello World"; }
<!-- Inline expression or variable -->
<p>The value of myMessage is: @myMessage </p>
<!-- Multi-statement block -->
@{
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语法规则VB
- Razor代码块被封闭在@code ...结束码
- 内联表达式(variables and functions)开始与@
- 变量的声明与Dim关键字
- 字符串括加上引号
- VB代码不区分大小写
- VB文件的扩展名为.vbhtml
例
<!-- Single statement block -->
@Code dim myMessage = "Hello World" End Code
<!-- Inline expression or variable -->
<p>The value of myMessage is: @myMessage </p>
<!-- Multi-statement block -->
@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框架,这是专门用于创建Web应用程序设计的Microsoft.NET框架的一部分。
该Razor语法为您提供了ASP.NET的所有功能,但使用简化的语法更容易学习,如果你是一个初学者,让你更有效率,如果你是一个专家。
Razor网页可谓HTML页面两种类型的内容:HTML内容和Razor代码。
当服务器读取页面,它运行的Razor第一个代码,它发送的HTML页面的浏览器。 即在服务器上执行的代码可以执行无法在浏览器中完成的任务,例如访问服务器数据库。 服务器代码可以动态地创建动态HTML内容,然后再发送到浏览器。 从浏览器中看到的,由服务器代码生成的HTML并不比静态的HTML内容的不同。
ASP.NET网页用Razor语法有专门的文件扩展名CSHTML ( Razor using C#)或vbhtml ( Razor using VB)
正与对象
服务器编码往往涉及对象。
在"DateTime"的对象是内置的ASP.NET对象的典型,但对象也可以是自定义的,网页,文本框,文件,数据库记录等。
对象可以有他们可以执行的方法。 数据库记录可能有"Save"方法,图像对象可能有一个"Rotate"的方法,电子邮件的对象可能有一个"Send"的方法,等等。
对象还具有描述其特性的属性。 数据库记录可能有一个名字和姓氏属性(amongst others) 。
在ASP.NET DateTime对象有一个现在性能(written as DateTime.Now)而现在酒店有Day属性(written as DateTime.Now.Day) 下面的例子说明了如何访问DateTime对象的某些性质:
例
<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>
运行示例» 如果和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>
运行示例» 读取用户输入
动态网页的另一个重要特点是,你可以读取用户输入。
输入由请求[]功能,和张贴读取(input)由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>
运行示例»