- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《mvc3.0入门经典》.doc
? 博客园首页
ASP.NET MVC 3.0学习系列文章--Razor and ASP.NET MVC 3.0
作者:Nic Pei??来源:博客园??发布时间:2011-01-23 23:01??阅读:4420 次??原文链接?? [收藏]??
系列文章
ASP.NET MVC 3.0学习系列文章—序
Razor and ASP.NET MVC 3.0
ASP.NET MVC 3.0学习系列文章—Controllers in ASP.NET MVC 3.0
ASP.NET MVC 3.0学习系列文章—Model in ASP.NET MVC 3.0
?ASP.NET MVC 3.0学习系列文章--Dependency Resolution in ASP.NET MVC 3.0
这篇文章主要介绍内容如下:
??
1.Introduction
很多文章里都有介绍Razor,园子里也有很多文章介绍。推荐大家看看ScotGu的博客看看Razor的介绍。
2.Razor’s Goals
a.Easy to use easy to learn :
? 为什么说Razor容易使用呢》首先是它简洁的语法,让我们在写View页面时更加容易,另外你用过Razor后或者是使用它作为View Engine来发布你的网站或者系统的话,你会发现Razor的所有方法都单独的放在了一个dll中,你很容易把你当前的网站 view engine转化为Razor view engine。比如你可以在你的 webform项目中使用Razor,使用Razor语法来生成一些email发送的模板等。你只要有创造力,相信你会发现Razor的好用。 说Razor容易学习是因为它的语法相当简单,你只要会C#,并使用过Webform View Engine,很快你就能够学会Razor。
b.No ties to ASP.NET runtime:
没错,Razor不依赖 runtime,它的model都是Dynamic类型的。
c.Smart:
与webform view engine 相比,Razor的语法更加smart,
?
3.Creating A Simpler View
现在我们定义一个简单的view,并输入如下内容:
现在我们未定义nicholaspei这个变量,但是还是可以通过编译的。运行结果:
运行报错,看提示信息是nicholaspei在上下文中不存在。 我们再进一步看看Razor是如何运行的,看看下面的详细错误信息:
是通过C#编译时报的异常。
再看看下面更加详细的代码执行过程:
在这一行通过write来输入nocholaspei,编译器发现nicholaspei未定义,所以抛出异常。
那么如果我想输出一个@nicholaspei如何实现呢?
修改View如上面代码所示:
再次运行:
It’s work now……..?
??
4.Intermingling Code and Markup
C#代码和HTML代码混合在一起。
我之前有两篇文章是介绍Razor语法的,你可以去学习它来看看Razor和html标记如何混合使用。
/n-pei/archive/2011/01/13/1934149.html
/n-pei/archive/2011/01/15/1936267.html
这里不再啰嗦。
5.Models and ViewData
在Razor中很多都是Dynamic类型的。
上图是View的基类和WebViewPage的Generic类。
a.
Model类型是动态的。
来个例子说明:
先创建一个类Instructor。定义如下:
??
我们使用HomeController来返回一个IEnumerable的Instructor 集合。。。
先是准备数据:
Index部分的Controller部分:
View部分需要注意下,因为Model是Dynamic类型的。所以View的上面部分代码如下:
整个View的代码:
主意@model是动态的定义好Model,然后再foreach中使用Model。
运行结果:
还有一点需要注意的是这里的Html.Raw()是可以显示html标记的。
b.
在 mvc 3中新增了ViewBag它本身也是个dynamic类型的。
我们可以看看它和ViewData有什么区别:
Controller部分我们定义如下:
View部分你就可以看出来ViewData和ViewBag的区别了。
ViewDate中listColors是一个object所以我们需要先转化为Liststring,而在ViewBag中因为ListColors是Dynamic型的,所以可以直接使用。
6.HTML Helpers
目前所有的HTML Hel
您可能关注的文档
- 《C++课程设计报告》.doc
- 《c510索尼手机评测》.doc
- 《CAD室内设计施工图规范》.doc
- 《CAD计算机辅助设计》.doc
- 《CAD课程设计》.doc
- 《CAE技术在汽车覆盖件冲压成形中的应用》.doc
- 《CAN-Bus_汽车总线技术(中文)》.doc
- 《CATIA (初级)培训资料》.doc
- 《CATTI三级笔译必看笔译三级考前黄金讲义》.doc
- 《CAXA电子图板培训教程》.doc
- 《MVC—196微机电压自动控制器资料》.doc
- 《MVC教程》.doc
- 《MVC框架》.doc
- 《MVC模式的基本概念 》.doc
- 《MyBatis Spring整合示例》.doc
- 《MyBatis+Spring整合示例》.doc
- 《MyEclipse(Struts+Spring+Hibernate)入门实例(赠送)》.doc
- 《MyEclipse8.5_开发_SSH_(Struts2 Spring Hibernate)示例-完整丰富版》.doc
- 《MyEclipse8.5整合(Struts2+Spring+Hibernate)》.doc
- 《MyEclipse_8.6.1_搭建_Struts2.1+Spring3.0+Hibernate3.3_图解》.doc
最近下载
- 推拿学试题库(附参考答案).docx VIP
- 探讨平台经济下灵活就业人员的劳动权益保护问题.docx VIP
- 重症患者的营养支持PPT.ppt VIP
- 南瑞集团-水轮发电机组状态监测整体解决方案.pdf VIP
- 第二单元第1课《山水相逢》课件2025-2026学年人美版(2024)八年级美术上册 (1).pptx VIP
- 标准图集-华北-08BJ6-1地下工程防水1.pdf VIP
- 第2课 中国人首次进入自己的空间站(1课时)-课件(共23张PPT).pptx VIP
- 物业项目经理面试的53个经典问题(附参考答案).doc VIP
- 《观赏植物介绍》课件.ppt VIP
- 水电站碾压混凝土施工工法--rcc工法.doc VIP
文档评论(0)