首页 > 代码库 > Razor和HtmlHelper的使用意义
Razor和HtmlHelper的使用意义
写这篇文档的目的是为了给初学MVC的同伴们介绍在MVC的View中的两个新概念,能有利于我们更快,更好的开发项目。一个是视图引擎,一个是HtmlHlper。这两个知识都不是新的,知识概念新而已,都是在我们学过的ASPX和 Html上做了改进,是我们编程更加容易。
一、区别ASPX和Razor
在ASP.NET MVC模式中,我们的视图引擎选择有两种:ASPX(ASP.NET),Razor。
1.ASP.net。
如果选择ASPX,那么选择的引擎其实就是ASP.NET引擎。再说ASP.NET引擎前,先说说这几个问题
什么是 ASP.NET?
ASP.NET是微软 .NET 框架的主要部分
ASP.NET是一种服务器端脚本技术:可以使(嵌入网页中的)脚本由Internet服务器执行。
它是ASP和.NET技术的结合。提供基于组件、事件驱动的可编程网络表单,大简化了编程。
ASP.NET是一种在 IIS 中运行的程序
IIS (Internet Information Services)是微软的 Internet 服务器
IIS是 Windows servers操作系统免费捆绑的组件
IIS也是 Windows 2000和 XP 专业版的组成部分
什么是 ASP.NET文件?
ASP.NET文件类似 HTML 文件,但是可以包含 HTML、XML以及脚本
ASP.NET文件中的脚本在服务器上执行
ASP.NET文件的文件后缀是 ".aspx"
ASP.NET如何工作?
当浏览器请求 HTML文件时,服务器会返回该文件
当浏览器请求 ASP.NET文件时,IIS 会把该请求传递给服务器上的 ASP.NET引擎
ASP.NET引擎会逐行地读取该文件,并执行文件中的脚本
最后,ASP.NET文件会以纯 HTML 的形式返回浏览器
2、Razor
什么是Razor?
Razor是一种允许您向网页中嵌入基于服务器的代码(Visual Basic和 C#)的标记语法。由此也可以看出,Razor其实是一种服务器代码和HTML代码混写的代码模板,类似于没有后置代码的.aspx文件。
文件类型
Razor支持两种文件类型,分别是.cshtml和.vbhtml,其中.cshtml的服务器代码使用了c#的语法,.vbhtml的服务器代码使用了vb.net的语法。
工作:当网页被写入浏览器时,基于服务器的代码能够创建动态内容。在网页加载时,服务器在向浏览器返回页面之前,会执行页面内的基于服务器代码。由于是在服务器上运行,这种代码能执行复杂的任务,比如访问数据库。
3、比较
同:
都可以实现向HTML中插入服务器代码的技术。
执行顺序相同
基于 ASP.NET
特长:
Razor它是为 web应用程序的创建而设计,特别是在MVC3中推出,服务于MVC模式。
它拥有传统 ASP.NET标记的能力,但较ASP.NET语法简单,更易使用,也更易学习。
结语:
所以,这次开发的MVC模式项目,个人建议使用Razor作为开发的视图引擎。
Razor的相关语法,与使用参考。
使用语法文档说明
参考网站:http://www.w3cschool.cc/aspnet/razor-intro.html
二、HtmlHelper类
功能:生成有数据绑定的Html标签。
为什么会出现? 许多时候我们会遇到如下场景在写一个编辑数据的页面时,我们通常会写如下代码<input type="text" value=http://www.mamicode.com/‘‘ name ="title">。于是我们思考,对于这种代码我们是不是也可以用一个Helper来自动绑定数据呢?这当然是可以的,ASP.NET MVC提供了一个HtmlHelper用于生成有数据绑定的Html标签。看,这个类没有什么特别的吧。就是辅助我们使用Html进行编程的一个工具类。在MVC模式中,在View中,我们可以直接通过这个工具类(HtmlHelper)来读取数据实体值,给Html标签赋值。
3、在View中是不是都得使用HtmlHlper?
主要是需要数据绑定的Html标签。比如表单与Models的绑定,所以在MVC中表单和链接还是推荐用HtmlHelper,其他的可以根据需要使用在Html和HtmlHelper中进行选择。
4、形式
类似通过Html.TextBox()的形式取到的Html标签。
使用参考: http://www.cnblogs.com/jyan/archive/2012/07/23/2604474.html
既然针对MVC,微软做了这么多贴心的工作,那么肯定是有利于MVC 的,可以帮助我们更快,更好的开发项目,我们就要去努力使用它。
希望对大家有帮助。
Razor和HtmlHelper的使用意义