详情请参考:http://www.runoob.com/aspnet/razor-intro.html
1.Razor 不是一种编程语言。它是服务器端的标记语言。基于服务器的代码(Visual Basic 和 C#)嵌入到网页中。
基于服务器的代码可以在网页传送给浏览器时,创建动态 Web 内容。Razor 是基于 ASP.NET 的,是为创建 Web 应用程序而设计的。
<ul> @for (int i = 0; i < 10; i++) { <li>@i</li> } </ul>
2.Razor 帮助器
3.Razor 编程语言(支持 C# (C sharp) 和 VB (Visual Basic))
主要的 Razor C# 语法规则
- Razor 代码块包含在 @{ ... } 中
- 内联表达式(变量和函数)以 @ 开头
- 代码语句用分号结束
- 变量使用 var 关键字声明
- 字符串用引号括起来
- C# 代码区分大小写
- C# 文件的扩展名是 .cshtml
<html> <body> <!-- 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> </body> </html>
主要的 Razor VB 语法规则(这部分省略,以下讲的是C#的内容)
略......
Razor 是一种将服务器代码嵌入在网页中的简单的编程语法。
Razor 语法是基于 ASP.NET 框架,专门用于创建 Web 应用程序的部分 Microsoft.NET 框架。
Razor 语法支持所有 ASP.NET 的功能,但是使用的是一种简化语法,对初学者而言更容易学习,对专家而言更有效率的。
Razor 网页可以被描述成带以下两种类型内容的 HTML 网页: HTML 内容和 Razor 代码。
当服务器读取页面时,它首先运行 Razor 代码,然后再发送 HTML 页面到浏览器。在服务器上执行的代码能够执行一些在浏览器上不能完成的任务,比如,访问服务器数据库。服务器代码能创建动态的 HTML 内容,然后发送到浏览器。从浏览器上看,服务器代码生成的 HTML 与静态的 HTML 内容没有什么不同。
带 Razor 语法的 ASP.NET 网页有特殊的文件扩展名 cshtml(Razor C#)或者 vbhtml(Razor VB)。
4.对象(内置对象、自定义对象)
<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>
5.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>
6.读取用户输入
输入是通过 Request[] 功能读取的,并且传送输入数据是经过 IsPost 条件判断的:
@{ var totalMessage = ""; if(IsPost) { var num1 = Request["text1"]; var num2 = Request["text2"]; var total = num1.AsInt() + num2.AsInt(); totalMessage = "Total = " + total; } } <!DOCTYPE html> <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>
7. C# 变量
——变量是用来存储数据的命名实体。
——一个变量的名称必须以字母字符开头,并且不能包含空格或者保留字符。
一个变量可以是一个指定的类型,表示它所存储的数据类型。string 变量存储字符串值("Welcome"),integer 变量存储数字值(103),date 变量存储日期值,等等。
变量使用 var 关键字声明,或通过使用类型(如果您想声明类型)声明,但是 ASP.NET 通常能自动确定数据类型。
// Using the var keyword: var greeting = "Welcome"; var counter = 103; var today = DateTime.Today; // Using data types: string greeting = "Welcome to RUNOOB.COM"; int counter = 103; DateTime today = DateTime.Today;
数据类型:
int、float、decimal、bool、string......
运算符:略。。。
转换数据类型:
8.C# 循环和数组
For 循环
如果知道要循环的次数,可以使用 for 循环。这种类型的循环在向上计数或向下计数时特别有用:
<html> <body> @for(var i = 10; i < 21; i++) { <p>Line @i</p> } </body> </html>
For Each 循环
如果使用的是集合或者数组,经常会用到 for each 循环。
集合是一组相似的对象,for each 循环可以遍历集合直到完成。
<html> <body> <ul> @foreach (var x in Request.ServerVariables) {<li>@x</li>} </ul> </body> </html>
While 循环
<html> <body> @{ var i = 0; while (i < 5) { i += 1; <p>Line @i</p> } } </body> </html>
数组
@{ string[] members = {"Jani", "Hege", "Kai", "Jim"}; int i = Array.IndexOf(members, "Kai")+1; int len = members.Length; string x = members[2-1]; } <html> <body> <h3>Members</h3> @foreach (var person in members) { <p>@person</p> } <p>The number of names in Members are @len</p> <p>The person at position 2 is @x</p> <p>Kai is now in position @i</p> </body> </html>
9.C# 逻辑条件
If 条件
@{var price=50;} <html> <body> @if (price>30) { <p>The price is too high.</p> } </body> </html>
Else 条件
@{var price=20;} <html> <body> @if (price>30) { <p>The price is too high.</p> } else { <p>The price is OK.</p> } </body> </html>
Else If 条件
@{var price=25;} <html> <body> @if (price>=30) { <p>The price is high.</p> } else if (price>20 && price<30) { <p>The price is OK.</p> } else { <p>The price is low.</p> } </body> </html>
Switch 条件
@{ var message=""; var weekday=DateTime.Now.DayOfWeek; var day=weekday.ToString() } <html> <body> @switch(day) { case "Monday": message="This is the first weekday."; break; case "Thursday": message="Only one day before weekend."; break; case "Friday": message="Tomorrow is weekend!"; break; default: message="Today is " + day; break; } <p>@message</p> </body> </html>