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()