为什么80%的码农都做不了架构师?>>>   

随着MVC3.0RTM版本的发布,最近将公司的项目从MVC2.0升级到MVC3.0。同时打算在MVC3中全面使用Razor模板引擎。现将Razor学习拿出来和大家分享,如果存在不足的地方欢迎您指出。

其实在使用<%= %>在html中调用C#代码时,内心总在埋怨。这个写法非常麻烦。麻烦在哪呢?其实就是闭合。比如:

Asp.net: <script src="<%=Url.Content("~/Scripts/jquery-1.4.4.min.js")%>"

Razor:   <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")"

非常明显,Razor在内部帮我们做了闭合“%>”。其实就是这个小小的闭合让我们可以在html内更加“流畅”的调用服务端代码。故Razor给开发带来了一定的便捷!下面介绍Razor的基本用法。

  一、模板页


Razor出现后我们就可以选择不再使用asp.net master 模板页。取而代之的是cshtml razor的模板文件。用法个人认为还是和master模板页类似。但在mater模板页的原有功能上有了进一步扩展,更方便开发。比如只要在View文件夹内加入_ViewStart.cshtml文件,我们就无需在每一个具体的View页面引入模板页。减少View页面内的重复代码。具体的可以建立一个MVC3 Application 选择razor模板,VS会自动建立上述机制。这里值得提出的是@RenderSection方法。可以让我们在模板页预设一个区域,未来给继承该模板页的View使用。具体请看以下操作:

在MVC3.0 shared文件夹下_Layout.cshtml这个模板文件内加入以下代码:

<!DOCTYPE html>
<html>
<head><title>@ViewBag.Title</title><link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /><script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>@RenderSection("Head", required: true)
</head>
<body><div class="page">

以上代码第7行,预留出一个Head的section。 熟悉模板页的人,应该明白该处是预留是给未来具体的View页面自定义特定js/css使用的。这个View我们就用默认的Home底下的Index来举例。打开index.cshtml 写入以下代码

@{ViewBag.Title = "Home Page";
}
<h2>@ViewBag.Message</h2>
@section Head{<script type="text/javascript">$(function () {alert("hello jquery");});</script>
}

该View已经集成了模板页,这里只是填充模板页内的Head section这时就可以加入我们的针对每个view页面的js或者CSS了。至此达到共性外的个性。

二、Razor语法:


文章开头就已经提到了,个人认为Razor语法的便捷在于razor自动帮助我们闭合C#或VB.NET在html的语法。请看以下代码:

已经给出注释了,仔细阅读并不难理解。您应该也能体会到如果将razor换成asp.net的<%= %>或者<%: %>写法,其实是很“痛苦”的。至于razor的其他用法官方网站已经写的很全面了,比如razor的已经为我们 HTML Encod防止XSS攻击、html中字符串中出现×××@×××.com这样的文本,Razor是可以自动识别成Email格式而不是Razor的关键字。

三、 Razor 语法智能提示:


该智能提示与VS内的一样,只需Ctrol + J 即可调出。具体的请看下图:

您是否和我一样也打算在Web开发中全面使用Razor呢?本文的例子在这里下载

原文链接: http://www.cnblogs.com/ryanding/archive/2011/01/19/1938690.html

转载于:https://my.oschina.net/dtec/blog/43270

MVC3.0 中Razor 学习相关推荐

  1. MVC3.0 中Razor 学习 cshtml文件

     随着MVC3.0RTM版本的发布,最近将公司的项目从MVC2.0升级到MVC3.0.同时打算在MVC3中全面使用Razor模板引擎.现将Razor学习拿出来和大家分享,如果存在不足的地方欢迎您指 ...

  2. 分享在MVC3.0中使用jQuery DataTable 插件

    http://www.cnblogs.com/ryanding/archive/2011/02/18/1957318.html MVC3.0中使用JQuery.DataTable插件 http://b ...

  3. MVC3.0中使用JQuery.DataTable插件。

    最近做项目的时候发现了一个很好的JQuery插件DataTable但是网上相关的资料好像很少,本人英文不咋滴在官网上除了知道点哪能下载外其它就都不知道鸟.后来用了个把小时写了个小demo,分享给大家, ...

  4. MVC3.0中直接在VS中浏览cshtml页面

    第一步:一般找到MVC中的项目,然后找到Views文件夹,一般中在其中有一个Login文件夹,找到index.cshtml文件. 如下图所示: 第二步:打开属性后,可以看到如下的图示: 特殊注意用红色 ...

  5. Python 3.0中ACCESS学习(三) 打开记录集并输出数据

    import win32com.client          conn=win32com.client.Dispatch('ADODB.Connection') DSN='PROVIDER=Micr ...

  6. Asp.Net Mvc3.0(MEF依赖注入实例)

    前言 在http://www.cnblogs.com/aehyok/p/3386650.html前面一节主要是对MEF进行简单的介绍.本节主要来介绍如何在Asp.Net Mvc3.0中使用MEF. 准 ...

  7. Log4Net异常日志记录在asp.net mvc3.0的应用

    前言 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.本文主要是简单的介绍如何在Visual ...

  8. 一起谈.NET技术,也玩MVC3.0 Razor自定义视图引擎来修改默认的Views目录结构

    刚刚爱上MVC3.0,几个不眠夜的学习越来越有趣.今天随手尝试自定义Mvc3.0的视图引擎,虽然已成功,但是还发现有点小疑问.随手贴出来希望大家指教指教. MVC的视图文件目录被固定/Views目录内 ...

  9. MVC3.0 Razor实现Ajax数据分页

    数据分页一只是一个老生常谈的问题,只要是做系统开发,一般都会牵扯到.最新学习了Razor,用到分页功能,分享下如何实现Ajax分页. 1.准备工作 网上有现成的分页工具MVCPager,最新的是1.5 ...

最新文章

  1. [文摘]Maven安装jar包的命令
  2. OpenMV生成AprilTag码
  3. Xshell修改颜色(xshell配色)
  4. java处理json回车_json中换行符的处理方法示例介绍
  5. rsync的安装使用01
  6. linuxSAMBA共享
  7. 开源代码 不开源_提供开源代码反馈的4个最佳实践
  8. 山西煤炭职业技术学院计算机信息管理,山西煤炭职业技术学院计算机信息系
  9. The “QtRunWork“ task returned false but did not log an error
  10. Java swing实现一组图片自动轮播
  11. Java中od方向是什么意思_od的用法
  12. 奥克兰大学计算机工程硕士学制,2020年奥克兰大学数据科学硕士专业硕士申请条件-学费-世界排名...
  13. DialogFragment dismiss闪退异常DialogFragment何时持有FragmentManager
  14. 地图 Api 使用小记 (use 51ditu)
  15. 计算机网络微课堂 学习笔记
  16. 20-40K/月,百度车联网招聘多岗位Android工程师(地点:深圳)
  17. Thinking in Java---从哲学家就餐问题看死锁现象
  18. Xadmin自定义开发 笔记(一)
  19. 生物信息百Jia软件(七):glimmer
  20. 计算机病毒引起故障,计算机病毒引发故障有哪些

热门文章

  1. 卡巴微软趋势科技等多款流行的反恶意软件产品被曝多个漏洞,可导致提权等后果...
  2. 严重的 Windows DNS RCE漏洞 SIGRed PoC 已现身,微补丁发布
  3. NVIDIA 修复 GPU 驱动中的多个代码执行缺陷
  4. 编程在线--- 网站(IT技术学习、面试、交流)上线了
  5. dubbo项目引用另一个项目的接口
  6. C#使用Windows Service
  7. 【文文殿下】浅谈KMP算法next数组与循环节的关系
  8. GitHub练习——如何将本地已有项目添加到github
  9. liniux备忘录-磁盘配额与进阶文件系统管理
  10. iOS AFNetWorking源码详解(一)