C# 中的Razor通过使用 @ 标识符切换
隐式输出
@ 符号后跟变量名
@varname
显式输出
@后跟小括号,变量名写在括号中
@(varname)
HtmlHelper
输出html
@Html.Raw("<span>Hello World</span>")
生成工标签的html
@Html.ActionLink("About this Website", "About")
HTML 表单元素
以下 HTML 帮助器可用于呈现(修改和输出)HTML 表单元素:
- BeginForm()
- EndForm()
- TextArea()
- TextBox()
- CheckBox()
- RadioButton()
- ListBox()
- DropDownList()
- Hidden()
- Password()
代码块
@后跟花括号
@{
var varname="hello ggcms";
}
块内代码转换
使用@:进行块内代码转换
<script>
@{ @:function(a,b) @:{ @:return a+b; @:} } </script>
渲染后
<script> function(a,b) { return a+b; }</script>
输出@符号两个@符号,转义为一个@符号@@abc渲染后@abc
流程控制条件控制
@if 、 else if 、else例@if (val > 0) { <p>大于0</p> }else if(val==0)
{ <p>等于0</p>}else{ <p>小于0</p>}
多条件控制
@switch
例
@switch (value) { case 1: <p>这是 1!</p> break; case 0: <p>这是0!</p> break;
case -1: <p>这是-1!</p> break; default: <p>这是@value.</p> break; }
循环
@for、@foreach 、@while 、@do while
例
@for (var i = 0; i < 100; i++) { <p>循环第: @i 次</p> }
@using
@using有两种用途
1、添加引用
@using System.IO
2、控制对象正确释放
@using (Html.BeginForm()) { <div> 帐号: <input type="text" id="user" name="user" value="" />
密码: <input type="password" id="pass" name="pass" value="" /> <button type="submit"> 登录 </button> </div> }
异常处理
@try、catch 、finally
和c#中是一样的
注释
服务器端注释,不会渲染
@*
//注释块
*@
@{//这里是注释,不会渲染到页面}
自定义函数
@functions { public string GetHello() { return "Hello Ggcms"; } }
<div>自定义函数: @GetHello()</div>
渲染后
<div>自定义函数: Hello Ggcms</div>
@helper自定义片段
@helper show(int count)
{
if (count == 0)
{
@:显示
}
else
{
@:不显示
}
}
调用
<div>show(1)</div>
页面布局
<text>标签
Razor将<text>中的内容原样输出,不渲染<text>标签
例
@{<text>块内内容<p>输出</p></text>}
使用模板
@{ Layout = "~/Views/Shared/_Layout.cshtml"; }
渲染body内容
@RenderBody()