Razor的使用

Razor可以识别尖括号,且关键词是@,默认情况下会对输出的html代码进行转义

1.C#代码 用 @ 加 中括号 包起来

@{
    for (int i = 0; i < 5; i++)
    {
         <h3>C#语句块要用大括号 括起来</h3>
    }
 }

2.Razor输出要使用小括号

<div>@(ViewBag.Dog).Dog</div>
输出 结果为:<br/>
<div>gougou.Dog</div>

3.定义一个匿名类变量,并调用

@{
    //定义一个 匿名类 变量
     var qq = new {com = "126"};
 }
<!--在@符号前面必须要有空格,否则Razor引擎无法识别—>
<div>Kim@qq.com</div>
<div>Kim @qq.com</div>

4.输出字符串

4.1直接使用 @变量 输出 变量内容

@qq.com

4.2代码块 使用Response.Write 输出 字符串

@{
    //会在 页面最前端 输出
     Response.Write(qq.com);
 }

5.输出html字符串

先定义一个html

@{
    string strHtml = "<input type='text'/>";
}

5.1使用 @变量 输出

<!-- Razor 默认会自动 转义 输出字符串中的尖括号—>
@strHtml

5.2使用Response.Write() 输出 html

@{
    <!-- Response输出 html,缺点Response.Write的内容 都会在页面最上面-->
    Response.Write(strHtml);
}

5.3使用Html.Raw方法 输出 不转义的html ,该方法会返回一个HTMLString对象

@Html.Raw(strHtml)

5.4使用HTMLString 输出不转义的html

@{
    HtmlString htmlRaw=new HtmlString("<input type='button' value='按钮'/>");
    //输出 不转义 html
    @htmlRaw<br/>
    //输出 转义 html
    @htmlRaw.ToHtmlString()
}

5.5使用MVCHtmlString的 静态方法Create 输出 不转义的 html

@{
     HtmlString strHtml2=new MvcHtmlString("<input type='radio'/>");
     @strHtml2
}

6.在视图中 声明 方法 ,并 调用 方法;@helper是关键字

<!--声明SayHi方法 返回一个 带div的字符串-->
@helper SayHi(string name)
{
     <div style="border:1px solid red">name,你好啊</div>
}
<!--调用SayHi方法—>
@SayHi("Kim")

6.1在当前视图中 调用 另一视图 ,并向该视图 传参数

注意:在当前视图中 调用 无返回值的方法,必须要加上大括号

<!--给视图PartTargetView.cshtml传参数 ,在该视图中可以调用-->
@{ ViewData["partData"] = "小明";}
@{Html.RenderPartial("~/Views/Home/PartTargetView.cshtml");}

6.2在视图中 调用 @带返回值的方法,不需要加大括号,输出方法的返回值

@Html.TextBox("txtName")

6.3调用泛型方法 需要 加大括号

@{ShowObj<object>()}

7.注释的几种方法

7.1块注释

@*
    这是块注释
*@

7.2行注释

@{
    //这是行注释
}

8.在 C#代码块中 输出 文本

@{
    <div>我爱编程</div>
    <!-- 方式一 使用 Razor内置标签 <text>—>
    <text>编程很快乐</text>
    <!--方式二 使用@冒号文本-->
    @:编程成就梦想
}

9.在视图中 输出 @符号

@@看我被转义了

10.访问Razor内部对象属性

<!--查看源代码,Controller中包含很多其他东西—>
@Response
<!--As**()  表示 类型转换—>
@("114".AsInt())
<!--将服务器地址装换为浏览器地址,浏览器的根地址就是反斜杠 而此时服务器的根地址就是/—>
@Href("~/Home/Index")
更多精彩内容请看:http://www.cnblogs.com/2star
原文地址:https://www.cnblogs.com/kimisme/p/4209128.html