轻松学MVC4.0–7 View之Razor

原文http://www.cnblogs.com/ybst/archive/2012/11/05/2754588.html

Razor,很有意思的剃刀。相较与之前开发WEB的方式,Razor真是轻松惬意。

下面说一下我使用Razor的一些心得。

    页面中归根结底是一个输出字符串(HTML CSS JS等混合的字符串)的过程。现在流行的Web开发方式,包括Asp(.net), Jsp, Php 等等,在页面上,都是在输出HTML字符串的过程中,嵌入服务器代码。或者理解成相反的过程, 不管如何理解, 页面中总是需要在输出字符串和其它服务端代码两者中间不断的进行切换。

传统的切换是通过<%%>之类的成对标记标识的。 Razor引擎不再使用之么复杂的标记, 而是使用一个@来标识这种切换。

    我们暂时将直接输出HTML CSS JS等字符串的模式称为HTML模式,将执行服务器代码的模式称为C#模式,请看下图:
   

从HTML模式进入C#的模式,总是以@开始, 后面没有跟{}时,Razor会自动判断何时返回Html模式。没有{}的C#模式一般都比较短暂,碰到HTML标记就结束了。

而有{}时,大括号之中会进入以c#为默认模式的环境中。比如:

这段代码在浏览器中的结果:

上面的代码,注释中说明了两种模式切换的情况,同时展示了是否进行HTML编码输出字符串的功能。

Razor的精髓便是默认模式模式的切换 。 在输出有困难的时候,可以通过{}和一些系统提供的或自定义的C#方法来明确的控制这种切换。

除了这一切换原理,Razor还有些小的特性,比如

1)@if必须有{}

2)在JS或CSS中使用@与稍有困难

3)<a>标记中的href属性,使用”~/”,Razor会自动将其转换成绝对路径

4) 很多情况下,初学者会错误的多输出;符号。比如将 @Html.Raw(“…”) 写成 @Html.Raw(“…”);  后面的;是多余的,会错误的呈现在页面上。

还有一些其它的,在使用中慢慢体会吧。

像HtmlHelper(即@Html)、URLHelper(@Url)等其中 有很多常用的方法。

比如Url.Content(“~/Controller/Action…”)会转换成绝对路径。

虽然看上去有点复杂,但是稍加熟悉后感觉真是比原来的<%%>轻松多了。

所以,我们爱Razor.

 
 

时间: 2024-10-26 11:06:57

轻松学MVC4.0–7 View之Razor的相关文章

轻松学MVC4.0–2 创建用户列表页面

原文 http://www.cnblogs.com/ybst/archive/2012/10/31/2747764.html 接 上回 创建的项目, 1.打开 Controllers\AccountController.cs 2.加入新方法Index: 3.在方法名称上点击右键,选择添加视图 确保选择了图上红色箭头指向的东西,确定之后会在 Views/Account文件夹下生成一个视图:Index.cshtml. Index.cshtml文件中已经生成了一些代码,为了该页面通用性(扩展性)好些,

轻松学MVC4.0–1 建立MVC项目

原文http://www.cnblogs.com/ybst/archive/2012/10/31/2747503.html 前提条件:安装好VS2012 1)创建新项目,选MVC里的Internet项目.它会自动的帮助我们做很多工作,是最轻松的MVC开始之门. 2)设置数据库.数据库和一些基础的表,会在后面自动创建.这里我们设置一下数据库的名称等信息.修改Web.config里的DefaultConnection连接字符串即可. 当然,如果需要连接已有的数据库,也是可以的,同样修改这里的连接字符

轻松学MVC4.0–3 删除用户功能

原文 http://www.cnblogs.com/ybst/archive/2012/10/31/2747997.html 在上一篇中,我们创建了用户列表页面. 现在,我们将用户列表功能,加入到菜单中.打开 Views\Shared\_Layout.cshtml,找到菜单部分,加入用户列表菜单项: 保存后,右键点击项目文件,弹出菜单中选 "在浏览器中查看": 如果未登录点击Users, 会跳转到登录页面,这是因为在其Controller类AccountController中,加入了一

轻松学MVC4.0–6 MVC的执行流程

原文 http://www.cnblogs.com/ybst/archive/2012/11/02/2750700.html   MVC在底层和传统的asp.net是一致的,在底层之上,相关流程如下: 1)Global.asax里,MvcApplication对象的Application_Start()事件中,调用 RouteConfig.RegisterRoutes(RouteTable.Routes); 来注册路由规则. 2)RouteConfig.RegisterRoutes()方法里,给

轻松学MVC4.0–4 扩展UserProfile

原文 http://www.cnblogs.com/ybst/archive/2012/10/31/2748275.html 1.扩展字段. 现在,要给UserProfile表加两个非空字段:FirstName, LastName. 因为前面我们已经注册过用户,该表中已存在数据,要添加非空字段比较麻烦,我们可以删除掉现有用户,从头开始会更简单.通过前面加入的删除用户的功能将现有用户全部删除. 在VS的数据连接中,打开DefaultConnection的UserProfile表: 点击Update

轻松学MVC4.0–5 角色Roles

原文 http://www.cnblogs.com/ybst/archive/2012/11/01/2749362.html 一个系统的权限模型,可能简单也可能复杂. 但是如果掌握了简单的基础,复杂的东西就可以很好的解决. 我们就从简单的东西学起.打开表webpages_Roles,添加两个角色: 打开Views\Account\Index.cshtml,作如下修改: 最后加一段JS: 确保模板文件,Views\Shared\_Layout.cshtml 中引用了相关的JS库文件: Accoun

跟我一起学习ASP.NET 4.5 MVC4.0(二)

原文http://www.cnblogs.com/xdotnet/archive/2012/03/06/aspnet_mvc40_keywords.html 上一篇文章中(跟我一起学习ASP.NET 4.5 MVC4.0(一)) 我们基础的了解了一下ASP.NET MVC4.0的一些比较简单的改变,主要是想对于MVC3.0来说的.因为这一些列主要是要给ASP.NET MVC初学者,或者还没有使用过MVC的ASP.NET开发者进行培训学习,当然也可以让我温习一下这种开发模式.所以本篇不得不讲解一下

跟我一起学习ASP.NET 4.5 MVC4.0(六)

原文http://www.cnblogs.com/xdotnet/archive/2012/07/21/aspnet40_webpage20.html 这一系列文章跨度有点大,由于最近忙于其他事情,没有更新,今天重新安装了下Win8系 统,VS2012和SQLServer 2012,顺便抽空继续一篇.随着VS2012 RC版本的放出,ASP.NET MVC4.0也随之有所改变,主要相对于BETA版本.前面几章节都是介绍MVC4.0或者是3.0中内容,今天我们来了解一下WebPage 2.0下面的

跟我一起学习ASP.NET 4.5 MVC4.0(五)

原文http://www.cnblogs.com/xdotnet/archive/2012/03/29/aspnet_mvc4_html_control_checkboxlist.html 前面几篇文章介绍了一下ASP.NET MVC中的一些基础,今天我们一起来学习一下在ASP.NET MVC中控件的封装.在页面中我们会经常使用到Html对象,来程序控件,当然这里的控件不是说ASP.NET中包含很多ViewState或其他信息的 控件.在ASP.NET MVC中控件就是扩展方法,主要对HtmlH