ASP.NET Razor语法
ASP.NET MVC中我们经常需要在视图(view)页写一些逻辑处理代码,也就是后端代码,这里就用到了 Razor语法。
首先我们先来了解一下什么是Razor语法。
Razor 是一种标记语法,可以让您将基于服务器的代码(Visual Basic 和 C#)嵌入到网页中。
基于服务器的代码可以在网页传送给浏览器时,创建动态 Web 内容。当一个网页被请求时,服务器在返回页面给浏览器之前先执行页面中的基于服务器的代码。通过服务器的运行,代码能执行复杂的任务,比如进入数据库。
Razor 是基于 ASP.NET 的,是为创建 Web 应用程序而设计的。它具有传统 ASP.NET 的功能,但更容易使用并且更容易学习。这里只对C#的Razor语法进行简单的说明。
切记:Razor语法不是一种编程语言,它只是一种服务器语言
主要的 Razor C# 语法规则
- Razor 代码块包含在 @{ … } 中
- 内联表达式(变量和函数)以 @ 开头
- 代码语句用分号结束
- 变量使用 var 关键字声明
- 字符串用引号括起来
- C# 代码区分大小写
- C# 文件的扩展名是 .cshtml
Razor语法的工作原理
- 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#)。
Razor语法的使用对象
服务器编码往往涉及到对象。
“Date” 对象是一个典型的内置的 ASP.NET 对象,但对象也可以是自定义的,一个网页,一个文本框,一个文件,一个数据库记录,等等。
对象有用于执行的方法。一个数据库记录可能有一个 “Save” 方法,一个图像对象可能有一个 “Rotate” 方法,一个电子邮件对象可能有一个 “Send” 方法,等等。
对象也有用于描述各自特点的属性。一个数据库记录可能有 FirstName 和 LastName 属性。
ASP.NET Date 对象有一个 Now 属性(写成 Date.Now),Now 属性有一个 Day 属性(写成 Date.Now.Day)
Razor的变量声明
这里的变量声明和C#语法基本相同,但我们可以选择var进行对变量的声明。变量使用 var 关键字声明,或通过使用类型(如果您想声明类型)声明,但是 ASP.NET 通常能自动确定数据类型。
Razor的循环语句
For循环
@for(var i=0;i<20;i++)
{
<p>@i</p>
}
Foreach循环
@foreach(var item in list)
{
<p>@item</p>
}
While循环
@{
var i = 0;
while (i < 5)
{
i += 1;
<p> @i</p>
}
}
Razor的逻辑语法
If条件
@{var price=50;}
<html>
<body>
@if (price>30)
{
<p>The price is too high.</p>
}
</body>
</html>
If 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 weekday=DateTime.Now.DayOfWeek;
var day=weekday.ToString();
var message="";
}
<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>
乾坤未定,你我皆是黑马!!!