Razor视图引擎基础语法
2014-03-31 16:28
330 查看
Razor的标识符
本文页面来源地址:http://www.cnblogs.com/dengxinglin/p/3352078.htmlRazor是基于framewor4以上写的一个开源项目:https://github.com/Antaris/RazorEngine/Razor是包含了模板引擎和动态编译两部分。本部分就简单记录了模板引擎的一些语法,之后用Razor做一个代码生成器,就使用Razor的语法来。Razor的发布是和MVC一起的,作为MVC的视图模板引擎。
Razor文件类型 Razor可以在vb.net和C#中使用。分别对应了两种文件类型,.vbhtml和.cshtml
Razor的标识符@字符被定义为Razor服务器代码块的标识符,后面的表示是服务器代码了。web form中使用<%%>中写服务器代码一个道理。在vs工具里面提供了代码着色和智能感应的功能。如下面代码:
Razor的作用域 在上面一个例子中都已经使用到了大括号{},不错,大括号里面的就是表示作用域的范围,用形如@{code}来写一段代码块。
用Razor和html代码混合编写在Razor中写html代码和html代码中写Razor语句都是可以的,并且还有智能提示。 a.在作用域内如果是以html标签开始则视为文本输出 b.如果要输出@,则使用@@ c.如果要输出非html标签和非Razor语句的代码,则用@:,他的作用是相当于在处于html下面编写一样了,如在@:后面可以加上@就是表示Razor语句的变量 如:
Razor作用块注释 razor作用块里面本身就是服务器代码了,因此可使用服务器代码的注释,注释有//和/**/分别是单行注释和多行注释。 另外razor注释还可以使用自身特有的@* 注释的内容 *@,支持单行和多行的。
Razor类型转换 As系列扩展方法和Is系列扩展方法 AsInt(), IsInt() AsBool(),IsBool() AsFloat(),IsFloat() AsDecimal(),IsDecimal() AsDateTime(),IsDateTime() ToString()
razor其它 @Href("~/")//表示网站的根目录@Html.Raw(Module.Content) 输出HTML,如:@Html.Raw('<font color='red'>红字</font>'),就会显示出红色的”红字“,不用的话会直接显示这段html字符串(<font color='red'>红色文字</font>)
在实际中,比如一个网站,整过框架是一样的,而有的地方是很多相同的版块。因此我们需要复用。
布局(Layout)layout方式布局就是相当于一个模板一样的,我们在它地址地方去添加代码。相当于定义好了框架,作为一个母版页的,在它下面的页面需要修改不同代码的地方使用@RenderBody()方法
Section区域Section是定义在Layou的中使用的。在Layout的页面中用。在要Layout的父页面中使用@RenderSection("Section名称 ")定义:
在它的子页面中使用
Helperhelper就是可以定义可重复使用的帮助器方法,不仅可以在同一个页面不同地方使用,还可以在不同的页面使用。如在cshtml中那么写:
我们通常会把一类Helper放在一个单独的cshtml文件中,而文件名就相当于一个类名。我把sum放在HelpMath.cshtml文件中,则我们在那上面cshtml中的使用方法是:
本文页面来源地址:http://www.cnblogs.com/dengxinglin/p/3352078.htmlRazor是基于framewor4以上写的一个开源项目:https://github.com/Antaris/RazorEngine/Razor是包含了模板引擎和动态编译两部分。本部分就简单记录了模板引擎的一些语法,之后用Razor做一个代码生成器,就使用Razor的语法来。Razor的发布是和MVC一起的,作为MVC的视图模板引擎。
Razor文件类型 Razor可以在vb.net和C#中使用。分别对应了两种文件类型,.vbhtml和.cshtml
Razor的标识符@字符被定义为Razor服务器代码块的标识符,后面的表示是服务器代码了。web form中使用<%%>中写服务器代码一个道理。在vs工具里面提供了代码着色和智能感应的功能。如下面代码:
@{string userName= "邓星林";} <span>@userName</span> <span>@DateTime.Now.ToString("yyyy-MM-hh")</span>
Razor的作用域 在上面一个例子中都已经使用到了大括号{},不错,大括号里面的就是表示作用域的范围,用形如@{code}来写一段代码块。
@{ string userName= "邓星林"; @userName}在作用域(代码块)中输出也是用@符号的。
用Razor和html代码混合编写在Razor中写html代码和html代码中写Razor语句都是可以的,并且还有智能提示。 a.在作用域内如果是以html标签开始则视为文本输出 b.如果要输出@,则使用@@ c.如果要输出非html标签和非Razor语句的代码,则用@:,他的作用是相当于在处于html下面编写一样了,如在@:后面可以加上@就是表示Razor语句的变量 如:
@{ var str = "abc"; ////下面会输出:this is a mail:dxl0321@qq.com, this is var: abc,this is mail@str,this is @; @: thisis a mail:dxl0321@qq.com, thisisvar: @str,thisis mail@str,thisis @@; //下面输出abc @str }
Razor作用块注释 razor作用块里面本身就是服务器代码了,因此可使用服务器代码的注释,注释有//和/**/分别是单行注释和多行注释。 另外razor注释还可以使用自身特有的@* 注释的内容 *@,支持单行和多行的。
@{ @* 多行注释 多行注释 *@ var i = 10; @* asdfasf *@}
Razor类型转换 As系列扩展方法和Is系列扩展方法 AsInt(), IsInt() AsBool(),IsBool() AsFloat(),IsFloat() AsDecimal(),IsDecimal() AsDateTime(),IsDateTime() ToString()
@{ var i = “10”;}<p> i = @i.AsInt() </p> <!-- 输出 i = 10 -->
razor其它 @Href("~/")//表示网站的根目录@Html.Raw(Module.Content) 输出HTML,如:@Html.Raw('<font color='red'>红字</font>'),就会显示出红色的”红字“,不用的话会直接显示这段html字符串(<font color='red'>红色文字</font>)
在实际中,比如一个网站,整过框架是一样的,而有的地方是很多相同的版块。因此我们需要复用。
布局(Layout)layout方式布局就是相当于一个模板一样的,我们在它地址地方去添加代码。相当于定义好了框架,作为一个母版页的,在它下面的页面需要修改不同代码的地方使用@RenderBody()方法
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><title>我的网站 - @Page.Title</title></head><body> @RenderBody() </body></html>
@{ Layout = "/LayoutPage.cshtml"; Page.Title = "测试页面哦";}<p>This is a layout test</p>页面(Page)page是当需要在一个页面中,输出另外一个razor文件的内容时候用到,比如头部或者尾部这些公共的内容时候需要用到。输出就使用 @RenderPage()方法如:A页面中也要把B页面的内容输出A页面:
<p> @RenderPage("/b.cshtml")</p>b页面的代码如下:
<font color="red">这是一个子页面</font>
Section区域Section是定义在Layou的中使用的。在Layout的页面中用。在要Layout的父页面中使用@RenderSection("Section名称 ")定义:
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><title>我的网站 - @Page.Title</title></head><body> @RenderSection("SubMenu") @RenderBody() </body></html>
在它的子页面中使用
@section SubMenu{ Hello This is a section implement in About View. }如果在子页面中没有去实现了SubMenu了,则会抛出异常。我们可以它的重载@RenderSection("SubMenu", false)
@if (IsSectionDefined("SubMenu")) { @RenderSection("SubMenu", false) } else { <p>SubMenu Section is not defined!</p> }
Helperhelper就是可以定义可重复使用的帮助器方法,不仅可以在同一个页面不同地方使用,还可以在不同的页面使用。如在cshtml中那么写:
@helper sum(int a,int b){ var result=a+b; @result }<div ><p>@@helper的语法</p> <p>2+3=@sum(2,3)</p> <p>5+9=@sum(5,9)</p> </div>
我们通常会把一类Helper放在一个单独的cshtml文件中,而文件名就相当于一个类名。我把sum放在HelpMath.cshtml文件中,则我们在那上面cshtml中的使用方法是:
<p>2+3=@HelpMath.sum(2,3)</p><p>5+9=@HelpMath.sum(5,9)</p>另外,系统还为我们提供了一些列的Helper,用来简化Html的书写。这些Helper放在@Html中,我们可以方便的使用:
<p> @Html.TextBox("txtName")</p>
相关文章推荐
- ASP.NET MVC3 Razor视图引擎-基础语法
- 一起谈.NET技术,ASP.NET MVC3 Razor视图引擎-基础语法
- ASP.NET MVC3 “.NET研究”Razor视图引擎-基础语法
- Razor视图引擎-基础语法
- ASP.NET MVC3 Razor视图引擎-基础语法
- MVC3 Razor视图引擎的基础语法
- Razor视图引擎-基础语法
- ASP.NET MVC3 系列教程 - Razor视图引擎基础语法
- Razor视图引擎基础语法
- ASP.NET MVC3 系列教程 - Razor视图引擎基础语法
- MVC3 Razor视图引擎基础语法
- MVC3 Razor 视图引擎的基础语法
- MVC3 Razor视图引擎基础语法 [转]
- ASP.Net MVC(3) 之Razor视图引擎的基础语法
- Razor视图引擎基础语法
- Razor视图引擎-基础语法
- MVC3.0学习2-Razor视图引擎-基础语法
- MVC3 Razor视图引擎-基础语法
- MVC3 Razor视图引擎的基础语法
- ASP.NET MVC3 系列教程 - Razor视图引擎基础语法