前言:

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="#?pageIndex=@i">@i</a>

}

else

{

    <a class="pagination" href="#?pageIndex=@i">@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)

Razor基本语法的更多相关文章

  1. Razor基础语法简介

    http://blog.csdn.net/pasic/article/details/7072340 Razor的出现,使页面看起更加简洁,Razor的页面后缀为:.cshtml Razor基础语法: ...

  2. Razor基础语法

    原文:Razor基础语法 一.介绍      Razor是ASP.NET MVC视图引擎的代号,支持.cshtml和.vbhtml两种模板文件,符号@标记服务端代码的开始,比以前asp.net的< ...

  3. ASP.NET Mvc Razor视图语法

    在ASP.NET MVC中有两套模版引擎,一套是ASPX,一套是Razor,从事过WebForms开发的朋友们,对于ASPX模版已经很熟悉了,下面我说一下我所熟悉的Razor模版引擎的一些语法,供大家 ...

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

    MVC3.0中新增加了Razor视图,Razor视图的语法以@符号为核心,貌似在这个时代离不开@了,微博,邮箱都用这个. 1.输出变量和文本 @DateTime.Now @for (int i = 0 ...

  5. 浅谈MVC Razor基本语法

    首先说下MVC,mvc已经不用ViewState来保留网页的状态,所以大部分依赖ViewState的功能都将无法使用, 比如gridview的分页与排序,page trace等利用viewstate记 ...

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

    一.显示界面 .Models(模板) private MyDBDataContext _context = new MyDBDataContext(); public List<Info> ...

  7. MVC学习四:Razor视图语法

    @{ Layout = null; } <hr /> <!DOCTYPE html> @this.GetType().Assembly.Location.ToString() ...

  8. ASP.NET Razor——ASP.NET Razor - C#代码语法

    Razor 同时支持 C# (C sharp) 和 VB (Visual Basic). 主要的 Razor C# 语法规则 Razor 代码块包含在 @{ ... } 中 内联表达式(变量和函数)以 ...

  9. Razor语法的一些特殊需求输出

    开发ASP.NET MVC,常会使用Razor来呈现内容.下面有几个特殊需求的输出,Insus.NET列出来让大家参考. 双@@输出只有一个. 在Razor的语法中,如果想输出html,它会有两种语法 ...

随机推荐

  1. ‘ant-version’不是内部或外部命令,也不是可运行的程序

    下载apache-ant-1.9.2-bin.zip后,解压目录:F:\selenium\apache-ant-1.9.2 配置环境变量,在“我的电脑->属性->高级->环境变量 - ...

  2. mobaxterm ssh command

    ssh -qTfnNg -D 7070 demouser@echo.supportedns.com -p 2233

  3. pivotx的entry和page内容里的日期格式修改

    欢迎转载opendevkit文章, 文章原始地址: http://www.opendevkit.com/?e=63 1. 文章发布时间的确定 如果服务器空间在国内还好说, 如果在国外的话, 文章编辑时 ...

  4. 黑马程序员+ADO.Net基础(下)

    ---------------<a href="http://edu.csdn.net"target="blank">ASP.Net+Android ...

  5. 分享我开发的网络电话Android手机APP正式版,图文详解及下载

    分享我开发的网络电话Android手机APP正式版,图文详解及下载 分享我开发的网络电话Android手机APP正式版 实时语音通讯,可广域网实时通讯,音质清晰流畅! 安装之后的运行效果: 第一次安装 ...

  6. hadoop+hive使用中遇到的问题汇总

    问题排查方式  一般的错误,查看错误输出,按照关键字google 异常错误(如namenode.datanode莫名其妙挂了):查看hadoop($HADOOP_HOME/logs)或hive日志 h ...

  7. redis系列-redis的使用场景

    redis越来越受大家欢迎,提升下速度,做下缓存,完成KPI之利器呀.翻译一篇文章<<How to take advantage of Redis just adding it to yo ...

  8. 小计C/C++问题(1)

    本文主要记录了以下2个问题: 表达式中,有符号变量和无符号变量的转化问题 C/C++中,main函数执行完以后,还执行了什么语句? 这里简单的说一下我的环境:Win7 32位,Qt creator 5 ...

  9. 内存角度探寻C++面向对象 之 继承、多态

    一,简单继承: #include <iostream> class TableTennisPlayer { private: int id; public: TableTennisPlay ...

  10. PDO连接mysql和pgsql数据库

    PDO连接mysql数据库 <?php $dsn="mysql:host=localhsot;dbname=lamp87"; $user="root"; ...