最新的Web开发教程
 

ASP.NET剃须刀 - C#和VB代码语法


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>
运行示例»