Razor语法

# Razor - 代码语法 C# 的主要 Razor 语法规则 - Razor 代码封装于 @{ ... } 中 - 行内表达式(变量和函数)以 @ 开头 - 代码语句以分号结尾 - 字符串由引号包围 - C#代码对大小写敏感 - C#文件的扩展名是 .cshtml ## C# 实例 C#简单代码示例显示 ```cs <!--单行代码块--> @{ 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 是一种简单的编程语法,用于在网页中嵌入服务器端代码。 Razor 语法基于 ASP.NET 框架,该框架是微软的 .NET 框架特别为 web 应用程序开发而设计的组成部分。 Razor 语法赋予您所有 ASP.NET 的能力,但是使用了简化过的语法,如果您是初学者,则更容易学习,如果您是专家,则更有利于提高生产力。 Razor 网页可被描述为带有两种内容的 HTML 页面:HTML 内容和 Razor 代码。 当服务器读取这种页面后,在将 HTML 页面发送到浏览器之前,会首先运行 Razor 代码。这些在服务器上执行的代码能够完成浏览器中无法完成的任务,比如访问服务器数据库。服务器代码能够在页面被发送到浏览器之前创建动态的 HTML 内容。从浏览器来看的话,由服务器代码生成的 HTML 与静态 HTML 内容没有区别。 使用 Razor 语法的 ASP.NET 网页拥有特殊的文件扩展名 .cshtml ## 与对象打交道 服务器代码常常涉及对象。 "Date" 对象是典型的 ASP.NET 内建对象,但是也可以自行定义对象,一张网页,一个文本框,一个文件,或者一条数据库记录,等等。 对象可以拥有能够执行的方法。数据库记录可以提供“保存”方法,图像对象可以有“旋转”方法,电子邮件对象可以提供“发送”方法,以此类推。 对象也可以有描述其特点的属性。数据库记录可以有 FirstName 和 LastName 属性。 ASP.NET Date 对象拥有 Now 属性(写为 Date.Now),Now 属性有 Day 属性(写为 Date.Now.Day)。下面的例子展示如何访问 Date 对象的某些属性: #### 实例 ```html <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 语句: ```cs html @{ var txt = ""; if(DateTime.Now.Hour > 12) { txt = "Good Evening"; } else { txt = "Good Morning"; } } <p>The message is @txt</p> ```