1、razor语法实例
(1)隐式表达式
<span>@model.Message</span>
说明:隐式表达式总是采用HTML编码方式
(2)显示代码表达式
<span>1+2=@(1+2)</span>
(3)无编码代码表达式
有时候需要显示的渲染一些不应该采用HTML编码的值,这时可以采用Html.Raw方法
@{string message="<strong>加粗</strong>"};
<span>@Html.Raw(model.Message)</span>
(4)代码块
代码块是简单的执行代码部分,对以后要使用的变量很有帮助
@{
int x=123;
string y="aaa";
}
(5)文本和标记相结合
@foreach(var item in items){
<span>Item @item.Name</span>
}
(6)转义代码分隔符
可以使用“@@”来编码“@”来显示"@"。
(7)服务器端的注释
@*
xxxxxxxxxxxxxxxx
*@
2、布局
(1)基本概念
Razor的布局有助于使应用程序中的多个视图保持一致的外观。与Web Forms相比,其中母版页和布局的作用是相同的。
(2)实例
布局文件为SiteLayout.cshtml:
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
</head>
<body>
<h1>@ViewBag.Title</h1>
<div id="main-content">@RenderBody()</div>
</body>
</html>
注意的是在视图中有一个@RenderBody()调用。这是一个占位符,用来标记使用这个布局的视图将渲染它们的主要内容的位置。多个Razor视图现在可以利用这个布局来显示一致的外观。
看一个使用这个布局的例子Index.cshtml:
@{
Layout = "~/Views/Shared/SiteLayout.cshtml";
ViewBag.Title = "Index Page";
}
<p>Welcome to my Blog!</p>
<!DOCTYPE html>
<html>
<head>
<title>Index Page</title>
</head>
<body>
<h1>Index Page</h1>
<div id="main-content"><p>Welcome to my Blog!</p></div>
</body>
</html>
注意视图内容,其中标题和h1标记内容都是由视图Index.cshtml提供的。除此之外的所有其他内容都是由布局SiteLayout.cshtml提供的。