Razor基本语法

前言:

Razor引擎的核心是识别@符号及尖括号:
    1、<...></...>
    2、<.../>
    [之所以说是“尖括号”而非“元素标签”,见下面的例子。]

@for (int i = 0; i < 5; i++)
{

    <test>i</test>

}

基本语法:

语法一、@()

表达式

@( 1 == 0 ? "1等于0" : "1不等于0")

语法二、@{}

语句块

@{
    var now = DateTime.Now;

    if (now.Hour.CompareTo(12) < 0)

    {

        <span>上午</span>

    }

    else

    {

        <span>下午</span>

    }

}

语法三、@

1、@后面直接跟变量输出变量的内容
    2、@后面直接跟有返回值的方法输出方法的返回值
    3、if-else、switch、for、foreach、while、do-while等流控制语句

@now.Hour<br />
@now.ToShortDateString()<br />

@if (now.Hour.CompareTo(12) < 0)

{

    <span>上午</span>

}

else

{

    <span>下午</span>

}

<br />

@for (int i = 0; i < 5; i++)

{

    <span>@i</span>

}

特殊场景:@注意点
   1、编程语言要与输出字符串隔离
   2、不能调用无返回值的方法,解决方法是使用语句块@{}.

<span>不能切换到@now.编程语言</span><br />
<span>不能切换到 @now .编程语言</span><br />

@{

    RazorTestClass.SayHello();

}

public class RazorTestClass

{

    public static void SayHello()

    {

        return;

    }

 

    public static string SayHello<T>(T t)

    {

        return t.ToString();

    }

}

语法四、@helper

声明方法

@helper paging(uint itemCount,uint pageSize,uint pageIndex)
{

    uint totalPagesCount = itemCount%pageSize == 0 ? itemCount/pageSize : itemCount/pageSize + 1;

if (0 ==

    totalPagesCount 

)

{

    totalPagesCount = 1;

}

for (

uint i = 1; i <= totalPagesCount; i++)

{

if (

i == pageIndex)

{

    <a class="pagination current" href="#[email protected]">@i</a>

}

else

{

    <a class="pagination" href="#[email protected]">@i</a>

}

}

 

    }

@paging(51, 10, 3)

语法五、@**@

注释

@*
    这是一个注释

*@

语法六、Razor内置标签<text></text>

用于直接输出内容

@for (int i = 0; i < 5; i++)
{

    <text>@i</text>

}

语法七、转义符

例:
    @@
    @class

@{
    @:转义符@@

}

补充:

Razor引擎输出HTML默认会转义,需要不转义输出使用html.Raw()方法最为方便。

@{ 
    var str = "<div style=‘color:red‘>我会被转义吗?</div>";

}

@str

@Html.Raw(str)

时间: 2024-08-25 17:42:48

Razor基本语法的相关文章

Asp.Net Mvc Razor视图语法

    Asp.Net Mvc Razor视图语法 [email protected]符号输出变量值 2.使用C#语法嵌套Html标签循环输出NameList的值:使用@{C#语法代码}: 3.输出@符号使用两个@@ 4.服务器注释使用@*注释内容*@ [email protected]:输出文本,或者使用<text></text> 6.在@()括号进行简单的操作或运算 [email protected]()或@{}可以输出带有html标签的字符串 8.Razor可以智能识别邮箱写

Razor基础语法

原文:Razor基础语法 一.介绍 Razor是ASP.NET MVC视图引擎的代号,支持.cshtml和.vbhtml两种模板文件,符号@标记服务端代码的开始,比以前asp.net的<%%>更加简洁 二.基本用法 1.@* *@注释 <div> <h3>@@**@@注释</h3> @* 这里是注释 *@ </div> 2.@定义一行代码 <div> <h3>@@定义一行代码</h3> <span>

Razor基础语法简介

原文:Razor基础语法简介 Razor的出现,使页面看起更加简洁,Razor的页面后缀为:.cshtmlRazor基础语法:1.代码注释:      多行注释: @*注释信息*@     单行注释: // 注释 1.代码体{...} @{ var x=100; var y=100; string str="this is string": } 在代码体中,没一行都需要用";"结束,代码区中,字母区分大小写.字符类型常量必须用""括起来,2. 由

Razor的语法

首先我们来了解一下Razor的语法,在VS2010或者VS11中,添加一个试图就会让你选择使用Razor(cshtml)还是C#(ASPX)格式.Razor在语法上的美化是显而易见的,但是有时候会出现一些莫名其妙的错误,但是一般都可以得到解决,要么加HTML标签,要么是有“()”等等都可以得到解决,这个也许是在编写的Text Template对我们所写的文本解析有点问题而已. 在Razor中使用“@”来替代“<%%>”的编码格式,当然如果需要代码块,就需要用到“@{}”.在其中就可以编写C#代

浅谈MVC Razor基本语法

Razor语法是在MVC3.0引入的全新的c#语法,取而代之<%...%>语法.用在mvc的view页面. 首先谈一下razor语法的基本用法: 1.如果在页面输出单一变量时,只要在c#语句之前加上@符号即可,范例如下: <p> 现在时刻:@DateTime.Now </p> 2.在页面中输出一段含有空白子元或运算子的结果时,必须在前后加上一个小括弧,范例如下: <p> 会员名称:@(User.Identity.Name+Model.MemberLevel)

ASP.NET MVC3细嚼慢咽---(3)Razor视图语法

MVC3.0中新增加了Razor视图,Razor视图的语法以@符号为核心,貌似在这个时代离不开@了,微博,邮箱都用这个. 1.输出变量和文本 [html] @DateTime.Now @DateTime.Now[html] view [email protected] (int i = 0; i < 5; i++) { <p>@i</p> } @for (int i = 0; i < 5; i++) { <p>@i</p> } 2.HTML标签编

MVC——数据库增删改查(Razor)——Html语法

一.显示界面 1.Models(模板) private MyDBDataContext _context = new MyDBDataContext(); public List<Info> Select() //查询 { return _context.Info.ToList(); } 2.Contrallers(控制器) public ActionResult Index() { //在这里没用ViewBag List<Info> list = new InfoBF().Sel

Razor母版页语法

母版页中: @RenderBody()//表示调用它的视图直接写html代码的位置    @RenderSection("bottom")//自定义bottom占位符 调用母版页视图中 @{    Layout = "~/Views/Shared/_MyLayout.cshtml"; //表示调用了母版页} <p>这是内容页</p> //这里的代码写在@RenderBody()定义的位置 @section bottom //这里的代码写在类母

Razor语法

Razor并不是新的开发语言,它只是一种用在View页面代码区块的编写风格,所用的代码一样都是c#,因此开发人员不需要额外学习新的语言. Razor基本语法 1.在view页面输出表达式或者单个变量,只要在c#语句前面加上 @ 符号,同时在c#语句前后加上括号.razor表达式或者单个变量是不需要分号结尾的.范例如下: 表达式:@(ViewBag.Name+ViewBag.Level) 单个变量:@(DateTime.Now) 或者@DateTime.Now  (单个变量可以不加括号,建议加上)