首页>教程>ASP.NET教程>ASP.NET Razor 语法

需要支持?

如果通过文档没办法解决您的问题,请提交工单获取我们的支持!

ASP.NET Razor 语法

内容纲要

Razor 同时支持 C# (C sharp) 和 VB (Visual Basic)

主要的 Razor C# 语法规则

  1. Razor 代码块包含在 @{ ... } 中
  2. 内联表达式(变量和函数)以 @ 开头
  3. 代码语句用分号结束
  4. 变量使用 var 关键字声明
  5. 字符串用引号括起来
  6. C# 代码区分大小写
  7. C# 文件的扩展名是 .cshtml

范例

<!DOCTYPE html>
<meta charset="utf-8"/>
<!-- 单行代码块 -->@{ var myMessage =    "Hello World"; }
<!-- 内联表达式或变量 -->
<p>myMessage 变量的值是: @myMessage</p> 
<!-  多行代码块 -->@{
var greeting = "欢迎来到简单教程(www.twle.cn)";
var weekDay = DateTime.Now.DayOfWeek;
var greetingMessage = greeting + " 今天是: " + weekDay;
}<p>The greeting is: @greetingMessage</p>

主要的 Razor VB 语法规则

  1. Razor 代码块包含在 @Code ... End Code 中
  2. 内联表达式(变量和函数)以 @ 开头
  3. 变量使用 Dim 关键字声明
  4. 字符串用引号括起来
  5. VB 代码不区分大小写
  6. VB 文件的扩展名是 .vbhtml

范例

<!DOCTYPE html>
<meta charset="utf-8"/>
<!-- 单行代码块  --> @Code dim myMessage = "Hello World" End Code

<!-- 内联表达式或变量 --> 
<p>myMessage 变量的值是: @myMessage</p> 

<!-- Multi-statement block --> @Code
dim greeting = "欢迎来到简单教程(www.twle.cn)" 
dim weekDay = DateTime.Now.DayOfWeek 
dim greetingMessage = greeting & " 今天是 : " & weekDay
End Code

<p>欢迎消息: @greetingMessage</p>

它是如何工作的?

Razor 是一种将服务器代码嵌入在网页中的简单的编程语法

Razor 语法是基于 ASP.NET 框架,专门用于创建 Web 应用程序的部分 Microsoft.NET 框架

Razor 语法支持所有 ASP.NET 的功能,但是使用的是一种简化语法,对初学者而言更容易学习,对专家而言更有效率的

Razor 网页可以被描述成带以下两种类型内容的 HTML 网页

  1. HTML 内容
  2. Razor 代码

当服务器读取页面时,它首先运行 Razor 代码,然后再发送 HTML 页面到浏览器

在服务器上执行的代码能够执行一些在浏览器上不能完成的任务,比如,访问服务器数据库

服务器代码能创建动态的 HTML 内容,然后发送到浏览器

从浏览器上看,服务器代码生成的 HTML 与静态的 HTML 内容没有什么不同

Razor 文件扩展名

带 Razor 语法的 ASP.NET 网页有特殊的文件扩展名

  1. .cshtml ( Razor C# )
  2. .vbhtml ( Razor VB )

使用对象

服务器编码往往涉及到对象

"Date" 对象是一个典型的内置的 ASP.NET 对象,但对象也可以是自定义的,一个网页,一个文本框,一个文件,一个数据库记录等等

对象有用于执行的方法

  1. 一个数据库记录可能有一个 "Save" 方法
  2. 一个图像对象可能有一个 "Rotate" 方法
  3. 一个电子邮件对象可能有一个 "Send" 方法

对象也有用于描述各自特点的属性

  1. 一个数据库记录可能有 FirstName 和 LastName 属性

ASP.NET Date 对象有一个 Now 属性(写成 Date.Now),Now 属性有一个 Day 属性(写成 Date.Now.Day)

下面的范例演示了如何访问 Data 对象的一些属性

<!DOCTYPE html>
<meta charset="utf-8"/>
<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>
</table>

if 和 else 条件

动态网页的一个重要特点是,我们可以根据条件决定做什么。

做到这一点的常用方法是使用 if ... else 语句

范例

<!DOCTYPE html>
<meta charset="utf-8" /> 
@{
    var txt = "";
    if ( DateTime.Now.Hour > 12 )  
    {
        txt = "Good Evening";
    }else  {
        txt = "Good Morning";
    }
}
<p>The message is @txt</p>

读取用户输入

动态网页的另一个重要特点是,我们可以读取用户输入

输入是通过 Request[] 功能读取的,并且传送输入数据是经过 IsPost / IsGet 条件判断的

范例

@{
    var totalMessage = "";

    if(IsPost)
    {
        var num1 = Request["text1"];
        var num2 = Request["text2"];
        var total = num1.AsInt() + num2.AsInt();
        totalMessage = "Total = " + total;
    }
}
<!DOCTYPE html>
<meta charset="utf-8"/>
<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>
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索