【MVC架构】Razor语法
前言
Razor 是一种标记语法,可以让您将基于服务器的代码(Visual Basic 和 C#)嵌入到网页中。
Razor是基于服务器的代码可以在网页传送给浏览器时,创建动态 Web 内容。当一个网页被请求时,服务器在返回页面给浏览器之前先执行页面中的基于服务器的代码。通过服务器的运行,代码能执行复杂的任务,比如进入数据库。
叙述
Razor
Razor 是基于 ASP.NET 的,是为创建 Web 应用程序而设计的。它具有传统 ASP.NET 的功能,但更容易使用并且更容易学习
Razor是ASP.NET MVC支持的视图引擎之一。Razor允许您使用C#或Visual Basic编写HTML和服务器端代码的组合。视图基本语法的Razor视图具有.vbhtml文件扩展名,C#语法具有.cshtml文件扩展名。
Razor C# 语法规则
(1)Razor 代码块包含在 @{ ... } 中
(2)内联表达式(变量和函数)以 @ 开头
(3)代码语句用分号结束
(4)变量使用 var 关键字声明
(5)字符串用引号括起来
(6)C# 代码区分大小写
(7)C# 文件的扩展名是 .cshtml
如何编写Razor代码
内联表达式:
用@符号开始,用Html代码编写服务器端C#或VB代码。例如,编写@Variable_Name来显示服务器端变量的值。例如,DateTime.Now返回当前日期和时间。所以,写@ DateTime.Now来显示当前的日期时间,如下所示。单行表达式在表达式的末尾不需要分号。
<h1>Razor syntax demo</h1>
<h2>@DateTime.Now.ToShortDateString()</h2>
多语句代码块:
可以在花括号里面写多行的服务器端代码@{ ... }。每行必须以与C#相同的分号结尾。
@{
var date = DateTime.Now.ToShortDateString();
var message = "Hello World";
}
<h2>Today's date is: @date </h2>
<h3>@message</h3>
显示来自代码块的文本:
(1)使用@:或<text>/<text>显示代码块中的文本。
@{
var date = DateTime.Now.ToShortDateString();
string message = "Hello World!";
@:Today's date is: @date <br />
@message
}
(2)在代码块中使用<text>显示文本,如下所示。@{
var date = DateTime.Now.ToShortDateString();
string message = "Hello World!";
<text>Today's date is:</text> @date <br />
@message
}
if-else条件:
写@ if条件开始的条件。if-else代码块必须包含在大括号{}中,即使是单个语句也是如此。
@if(DateTime.IsLeapYear(DateTime.Now.Year) )
{
@DateTime.Now.Year @:is a leap year.
}
else {
@DateTime.Now.Year @:is not a leap year.
}
for循环:
@for (int i = 0; i < 5; i++) {
@i.ToString() <br />
}
模型:
使用@model在视图中的任何位置使用模型对象。
@model Student
<h2>Student Detail:</h2>
<ul>
<li>Student Id: @Model.StudentId</li>
<li>Student Name: @Model.StudentName</li>
<li>Age: @Model.Age</li>
</ul>
声明变量:
在括号内的代码块中声明一个变量,然后用@符号在html内部使用这些变量。
@{
string str = "";
if(1 > 0)
{
str = "Hello World!";
}
}
<p>@str</p>
它是如何工作的?
1、Razor 是一种将服务器代码嵌入在网页中的简单的编程语法。
2、Razor 语法是基于 ASP.NET 框架,专门用于创建 Web 应用程序的部分 Microsoft.NET 框架。
3、Razor 语法支持所有 ASP.NET 的功能,但是使用的是一种简化语法,对初学者而言更容易学习,对专家而言更有效率的。
4、Razor 网页可以被描述成带以下两种类型内容的 HTML 网页: HTML 内容和 Razor 代码。
5、当服务器读取页面时,它首先运行 Razor 代码,然后再发送 HTML 页面到浏览器。在服务器上执行的代码能够执行一些在浏览器上不能完成的任务,比如,访问服务器数据库。服务器代码能创建动态的 HTML 内容,然后发送到浏览器。从浏览器上看,服务器代码生成的 HTML 与静态的 HTML 内容没有什么不同。
6、带 Razor 语法的 ASP.NET 网页有特殊的文件扩展名 cshtml(Razor C#)或者 vbhtml(Razor VB)。
小结
(1)使用@来编写服务器端代码。
(2)服务器端代码块以@ {* code *}开头
(3)使用@:或<text> </ <text>显示代码块中的文本。
(4)if条件以@if {}开头
(5)for循环以@for开头
(6)@model允许您在视图中的任何位置使用模型对象。
下一篇: C#MDI窗体避免重复打开子窗体的问题
推荐阅读
-
ASP.NET MVC5网站开发文章管理架构(七)
-
ASP.NET MVC5网站开发咨询管理的架构(十一)
-
java学生信息管理系统MVC架构详解
-
ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统之前端页面框架构建源码分享
-
MVC+EasyUI+三层架构简单权限管理系统
-
ASP.NET MVC5网站开发之展示层架构(五)
-
spring mvc DispatcherServlet之前端控制器架构详解
-
ASP.NET MVC5网站开发之业务逻辑层的架构和基本功能 (四)
-
ASP.NET Razor - C# 和 VB 代码语法
-
ASP.NET MVC4 Razor模板简易分页效果