文档章节

MVC3.0 中Razor 学习

彭博
 彭博
发布于 2012/03/09 12:53
字数 840
阅读 339
收藏 1

      随着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

本文转载自:http://www.cnblogs.com/ryanding/archive/2011/01/19/1938690.html

彭博

彭博

粉丝 396
博文 1071
码字总数 6801
作品 2
深圳
程序员
私信 提问
asp.net mvc 4.0的部署

只要服务器支持 .NET 4,那么就能够在上面生成和部署 ASP.NET MVC 3 应用程序。 方法一(正常方法):安装 ASP.NET MVC 3 到机器上,程序集会安装到 GAC 中,机器上所有的 Web 项目都可以引用...

未来十年
2011/12/12
0
0
建设局项目总结(一)

时间飞逝,转眼间暑假就过去了、过完年初八老师说要我们回学校帮他做他所接的项目,现在想想,真不如说他想趁这个时间培养我们,因为,从这几天明显的感觉到,他在给我们做分析的时间早已经把...

长平狐
2012/11/12
81
0
MVC3+EF4.1开发之一

环境搭配: ado.net entity framework相信大家不会陌生,它是将数据库抽象化对象化的一种工具,在最新的EF4.1版本中支持的code first即代码优先,它在没有原始数据库时的情况下,自动根据程序建立...

mcy247
2017/12/06
0
0
ExtJs一(Hello World)

前言   本文原文链接地址 http://aehyok.com/Blog/Detail/48.html   来学习一下ExtJs,今天主要来了解一下ExtJs在Asp.Net Mvc3.0中的基本架构搭建。   所使用的ExtJs版本为4.1.1,下载地...

aehyok
2013/04/17
0
0
ASP.NET下MVC1.0->2.0->3.0->4.0发展

ASP.NET下的MVC从原始的1.0走到2.0,再到3.0,现在走到4.0,也许明年5.0就问世了,先不管那些,那说说这些MVC在ASP.NET是如何变化发展的。对于.net编程人员来说可能会很熟悉,也有可能不熟悉,...

小新的蜡笔
2012/03/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

2019年普通高校在川招生专业及名额介绍文科 带学费

2019年普通高校在川招生专业及名额介绍文科 带学费

asdtiang
26分钟前
1
0
springCloud配置中心config配置svn(踩坑记录)(基于consul)

新建一个config Server模块; 引入如下依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId></dependency>......

为何不可1995
26分钟前
0
0
mysql相关tips(持续更新)

1.字符集:utf8mb4 mysql 5.5.3之后出来的字符集,占用1-4个字节,最大占用的字节数为4.目前这个字段主要应用在(Emoji表情)。utf8mb4兼容utf8(1-3个字节),且比utf8能表示更多的字符。什...

lara_
27分钟前
0
0
微服务开源生态报告 No.1

从关注开源,到使用开源,再到参与开源贡献,越来越多的国内开发者通过开源技术来构建业务。 截止目前,Arthas / Dubbo / ChaosBalde / Nacos / RocketMQ / Seata / Sentinel / Spring Clou...

阿里云官方博客
30分钟前
1
0
MaxCompute 费用暴涨之存储压缩率降低导致SQL输入量变大

现象:同样的SQL,每天处理的数据行数差不多,但是费用突然暴涨甚至会翻数倍。 分析: 我们先明确MaxCompute SQL后付费的计费公式:一条SQL执行的费用=扫描输入量 ️ SQL复杂度 ️ 0.3(¥/GB...

zhaowei121
31分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部