目录:

什么是Razor?

Razor是基于服务端代码转换成网页的标记语法。语法主要包括Razor标记、C#和HTML组成。包含Razor语法的主要文件是.cshtml。

渲染HTML

Razor的默认语言是HTML,从Razor渲染成一个HTML跟直接的一个HTML没什么区别,Razor包含如下代码:

<p>我是中国人</p>

服务器渲染后还是<p>我是中国人</p>,没啥区别。

Razor语法

Razor支持C#,并通过使用 @ 符号从HTML切换到C#,并运算C#表达式并将之渲染为HTML输出。Razor能通过指定的标记从HTML切换到C#,当 @ 符号后面紧跟一个Razor保留字,则将切换为Razor特定标记,不然的话切换到成普通的C#。

如果HTML中需要包含 @ 的话,需要用@@符号进行转义。

<p>@@Email</p>

渲染后:

<p>@Email</p>

这样就不会因为HTML特性和内容中包含邮件地址@符号,而勿将@符号处理为转义字符。

隐式 Razor 表达式

隐式Razor表达式起于"@"符号,后面紧跟C#代码,比如:

<h2>@DateTime.Now</h2>

注意:隐式表达式都不能包含空格。否则分析器会报如下错误:

在 "@" 字符后面遇到了空格或换行符。只有有效的标识符、关键字、注释、"(" 和 "{" 在代码块开头才有效,并且它们必须紧跟在 "@" 后面,中间没有空格。

表达式

显式表达式包含一对括号的 符号,比如在页面上渲染上周的时间:

<h2>@(DateTime.Now-TimeSpan.FromDays(7))</h2>

任何在 @() 内的内容都会被运算并渲染输出,同时也不能包含空格。比如如下代码:

<h2>@DateTime.Now-TimeSpan.FromDays(7)</h2>

渲染后:

2016/10/24 22:39:49-TimeSpan.FromDays(7)

同时也可以使用@{}显示表达式结果中把这点连接起来:

@{
    var swich = new Person("Swich", 27);
 }
 <h2>@(swich.Age)</h2>

如果写成@(swich.Age)这种非显示表达式,那么它会当做邮件地址来处理渲染成为<h2>@swich.Age</h2>。当为显式表达式时,将渲染为<h2>27</h2>。

Razor基础语法一的更多相关文章

  1. 从零开始学 Web 之 ES6(三)ES6基础语法一

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  2. PHP入门笔记--基础语法一

    一.基本语法 php标记 <?php ?> php代码结束标记 三种注释 // /**/ # 二.类型 四种标量类型:boolean, integer, float, string 三种复 ...

  3. Python基础语法一

    所有内容都在代码上,有相关代码注释 # #代表注释 # 区分大小写.以回车换行结束 # 多行编写可以使用反斜杠 \ # 缩进代表一个代码块 #数值 #int类型可以使用下划线分割 c=123_456_ ...

  4. Razor基础语法简介

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

  5. Razor基础语法

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

  6. [转]Linq语法一

    LINQ即语言集成查询,是.NET Framework 3.5中新增的功能.其功能类似于数据库中的SQL语句(实际上LINQ就是针对.NET Framework的SQL):提供标准的.易于学习的查询和 ...

  7. Python语法一

    前记,今天开始学习Python 参考 笨方法学习+Python(第三版) 因为有编程基础,所以入门不难,相比于以前学过的其它语言编程,Python当然也有它独特的语法格式. 1.安装Python 访问 ...

  8. MVC Razor基础

    @ 可以编写一条C#语句@{} 可以编写一组C#语句@: 将文字内容直接输出到页面上去@() 在一句中将一段C#代码包括起来,证明这一句完整的C#代码 Razor解决路径问题: Html.Action ...

  9. CSS基础语法和CSS经常用到的知识点总结

    1. [代码]css基础教程     CSS基础语法CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明.每条声明由一个属性和一个值组成.每个属性有一个值.属性和值被冒号分开.例如:下面这行代 ...

随机推荐

  1. Android权限管理之RxPermission解决Android 6.0 适配问题

    前言: 上篇重点学习了Android 6.0的运行时权限,今天还是围绕着Android 6.0权限适配来总结学习,这里主要介绍一下我们公司解决Android 6.0权限适配的方案:RxJava+RxP ...

  2. EditText 基本用法

    title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...

  3. mybatis_开发篇

    一.使用mybatis的动态代理方式开发 需求:这里以crm系统中分页条件查询所有的客户信息的功能为例? 1.创建工程 2.引入所需的jar包 3.引入日志文件.数据库连接参数的配置文件等 4.创建m ...

  4. 总结30个CSS3选择器

    或许大家平时总是在用的选择器都是:#id  .class  以及标签选择器.可是这些还远远不够,为了在开发中更加得心应手,本文总结了30个CSS3选择器,希望对大家有所帮助. 1 *:通用选择器 ;; ...

  5. 【转】 FineBI:自助式BI工具打造业务分析的“快与准”

    如今的企业经营方式,业务对于数据分析有极大的需求,但却苦于没有数据以及工具的有效支持,业务分析仍就依赖于IT报表制作.而IT方不断地按业务需求去调研.确认业务逻辑,然后取数做报表,其中还要忍受业务的需 ...

  6. MyBatis3.2从入门到精通第一章

    第一章一.引言mybatis是一个持久层框架,是apache下的顶级项目.mybatis托管到goolecode下,再后来托管到github下.(百度百科有解释)二.概述mybatis让程序将主要精力 ...

  7. PHP相关代码

    1 <html>  <head>       <meta http-equiv="content-type" content="text/h ...

  8. Xamarin.Android之Fragment Walkthrough

    利用Fragment设计能够兼容不同屏幕的应用 这里我们先围观下最后的成果图,给读者打打气: 普通手机上显示的结果: 在平板上显示的结果: 笔者要郑重声明下,虽然看似是两种不同的显示效果,但是同一个应 ...

  9. 自制文件上传JS控件,支持IE、chrome、firefox etc.

    (function() { if (window.FileUpload) { return; } window.FileUpload = function (id, url) { this.id = ...

  10. [DeviceOne开发]-土地销售项目源码分享

    一.简介 这个是一个真实项目开源,虽然不是很花哨,但是中规中矩,小细节处理的也很好,非常值得参考和借鉴.里面的数据都缓存到本地,可以离线运行,但是调整一下代码,马上就可以和服务端完全对接.后续会有详细 ...