ASP.NET MVC中的 Razor语法

本文介绍了ASP.NET MVC中Razor语法的基础知识,包括代码块、内联表达式、变量声明、循环和逻辑语句的使用。Razor是一种将服务器代码嵌入HTML中的简洁语法,使得创建动态Web内容更加简便。通过示例展示了如何使用For、Foreach、While循环以及If、ElseIf、Switch等逻辑判断。
摘要由CSDN通过智能技术生成

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# 语法规则
  1. Razor 代码块包含在 @{ … } 中
  2. 内联表达式(变量和函数)以 @ 开头
  3. 代码语句用分号结束
  4. 变量使用 var 关键字声明
  5. 字符串用引号括起来
  6. C# 代码区分大小写
  7. C# 文件的扩展名是 .cshtml
Razor语法的工作原理
  1. Razor 是一种将服务器代码嵌入在网页中的简单的编程语法。
    Razor 语法是基于 ASP.NET 框架,专门用于创建 Web 应用程序的部分 Microsoft.NET 框架。
  2. Razor 语法支持所有 ASP.NET 的功能,但是使用的是一种简化语法,对初学者而言更容易学习,对专家而言更有效率的。
  3. Razor 网页可以被描述成带以下两种类型内容的 HTML 网页: HTML 内容和 Razor 代码。
  4. 当服务器读取页面时,它首先运行 Razor 代码,然后再发送 HTML 页面到浏览器。在服务器上执行的代码能够执行一些在浏览器上不能完成的任务,比如,访问服务器数据库。服务器代码能创建动态的 HTML 内容,然后发送到浏览器。从浏览器上看,服务器代码生成的 HTML 与静态的 HTML 内容没有什么不同。
  5. 带 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>

乾坤未定,你我皆是黑马!!!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.ToString()°

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值