Razor和HtmlHelper的使用意义

写这篇文档的目的是为了给初学MVC的同伴们介绍在MVC的View中的两个新概念,能有利于我们更快,更好的开发项目。一个是视图引擎,一个是HtmlHlper。这两个知识都不是新的。知识概念新而已。都是在我们学过的ASPX和
Html上做了改进。是我们编程更加easy。

一、差别ASPX和Razor

在ASP.NET MVC模式中,我们的视图引擎选择有两种:ASPX(ASP.NET),Razor。

1.ASP.net。

假设选择ASPX,那么选择的引擎事实上就是ASP.NET引擎。再说ASP.NET引擎前。先说说这几个问题

什么是 ASP.NET?

  • ASP.NET
    是微软 .NET 框架的主要部分

  • ASP.NET
    是一种server端脚本技术:能够使(嵌入网页中的)脚本由Internetserver运行。

  • 它是ASP和.NET技术的结合

    提供基于组件、事件驱动的可编程网络表单,大简化了编程。

  • ASP.NET
    是一种在 IIS 中执行的程序

    IIS (Internet Information Services)
    是微软的 Internet server

    IIS
    是 Windows servers操作系统免费捆绑的组件

    IIS
    也是 Windows 2000和 XP 专业版的组成部分

什么是 ASP.NET文件?

  • ASP.NET
    文件类似 HTML 文件。可是能够包括 HTML、XML以及脚本

  • ASP.NET
    文件里的脚本在server上运行

  • ASP.NET
    文件的文件后缀是 ".aspx"

    ASP.NET怎样工作?

    当浏览器请求 HTML文件时,server会返回该文件

    当浏览器请求 ASP.NET文件时,IIS
    会把该请求传递给server上的 ASP.NET引擎

    ASP.NET
    引擎会逐行地读取该文件,并运行文件里的脚本

    最后,ASP.NET文件会以纯 HTML 的形式返回浏览器

2、Razor

  • 什么是Razor?

Razor
是一种同意您向网页中嵌入基于server的代码(Visual Basic和 C#)的标记语法

由此也能够看出,Razor事实上是一种server代码和HTML代码混写的代码模板。类似于没有后置代码的.aspx文件。

  • 文件类型

Razor支持两种文件类型,各自是.cshtml和.vbhtml,当中.cshtml
的server代码使用了c#的语法,.vbhtml的server代码使用了vb.net的语法。

  

  • 工作:当网页被写入浏览器时,基于server的代码可以创建动态内容。在网页载入时,server在向浏览器返回页面之前,会运行页面内的基于server代码。因为是在server上运行。这样的代码能运行复杂的任务。比方訪问数据库。

3、比較

同:

  • 都能够实现向HTML中插入server代码的技术。

  • 运行顺序同样

  • 基于 ASP.NET

特长:

  • Razor它是为 web
    应用程序的创建而设计,特别是在MVC3中推出。服务于MVC模式

  • 它拥有传统 ASP.NET
    标记的能力,但较ASP.NET语法简单,更易使用,也更易学习。

  结语

所以,这次开发的MVC模式项目,个人建议使用Razor作为开发的视图引擎。

Razor的相关语法。与使用參考。

使用语法文档说明

參考站点:http://www.w3cschool.cc/aspnet/razor-intro.html

二、HtmlHelper类

  1. 功能:生成有数据绑定的Html标签。

  2. 为什么会出现?                                                                       很多时候我们会遇到例如以下场景在写一个编辑数据的页面时,我们一般会写例如以下代码<input type="text"       value='<%=ViewData["title"]%>' 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的使用意义的更多相关文章

  1. Razor及HtmlHelper学习笔记

    Razor 不是编程语言.它是服务器端标记语言. 什么是Razor? Razor 是一种允许您向网页中嵌入基于服务器的代码(Visual Basic 和 C#)的标记语法. 当网页被写入浏览器时,基于 ...

  2. 在AppCode中的razor调用HtmlHelper方法和UrlHelper方法

    原文发布时间为:2011-05-17 -- 来源于本人的百度文章 [由搬家工具导入] 可以写一个帮助类,如下 using System.Web.WebPages;using System.Web.Mv ...

  3. ASP.NET,Razor语句中@符号的意义

    比较下面两段代码的区别: <td> @if (item.ModifyTime.HasValue) { @item.ModifyTime.GetValueOrDefault().ToStri ...

  4. ASP.NET MVC 5 05 - 视图

    PS: 唉,这篇随笔国庆(2015年)放假前几天开始的,放完假回来正好又赶上年底,公司各种破事儿. 这尼玛都写跨年了都,真服了.(=_=#) 好几次不想写了都. 可是又不想浪费这么多,狠不下心删除.没 ...

  5. C# MVC 实现登录的5种方式

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷.  学无止境,精益求精    小弟之前做过三月的MVC,后来又一直webFo ...

  6. 把旧系统迁移到.Net Core 2.0 日记(5) Razor/HtmlHelper/资源文件

    net core 的layout.cshtml文件有变化, 区分开发环境和非开发环境. 开发环境用的是非压缩的js和css, 正式环境用压缩的js和css <environment includ ...

  7. ASP.NET MVC Razor HtmlHelper扩展和自定义控件

    先看示例代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; using S ...

  8. ASP.NET Core 中文文档 第四章 MVC(3.2)Razor 语法参考

    原文:Razor Syntax Reference 作者:Taylor Mullen.Rick Anderson 翻译:刘怡(AlexLEWIS) 校对:何镇汐 什么是 Razor? Razor 是一 ...

  9. 如何在ASP.NET Web站点中统一页面布局[Creating a Consistent Layout in ASP.NET Web Pages(Razor) Sites]

    如何在ASP.NET Web站点中统一页面布局[Creating a Consistent Layout in ASP.NET Web Pages(Razor) Sites] 一.布局页面介绍[Abo ...

随机推荐

  1. MIT 操作系统实验 MIT JOS lab2

    MIT JOS lab2 首先把内存分布理清楚,由/boot/main.c可知这里把kernel的img的ELF header读入到物理地址0x10000处 这里能够回想JOS lab1的一个小问.当 ...

  2. java Socket的怪异之处

    怪异之一: connect(SocketAddress endpoint):这个方法,尝试连接server端,如果连接不上,就抛出IOException异常.如果连接成功了,就继续执行下一步的代码. ...

  3. Web Service简单入门示例

    Web Service简单入门示例     我们一般实现Web Service的方法有非常多种.当中我主要使用了CXF Apache插件和Axis 2两种. Web Service是应用服务商为了解决 ...

  4. ECG信号读出,检测QRS,P,T 波(小波去噪,并根据检测),基于BP辨识的神经网络

    这学期的课程选择神经网络.最后的作业处理ECG信号,并利用神经网络识别. 1  ECG引进和阅读ECG信号 1)ECG介绍  详细ECG背景应用就不介绍了,大家能够參考百度 谷歌.仅仅是简单说下ECG ...

  5. poj 3225 间隙(横截面和填充操作)

    http://poj.org/problem?id=3225 一道题又做了一天. .这道题对我来说起初有N多难点. 1:区间的开闭怎样解决. . 2:如何把区间的交并补.对称差转化为对线段树的操作. ...

  6. Android网络图片显示在ImageView 上面

    在写这篇博文的时候,我參与了一个项目的开发,里面涉及了非常多网络调用相关的问题,我记得我在刚刚開始做android项目的时候,以前就遇到这个问题,当时在网上搜索了一下,发现了一篇博文,如今与大家分享一 ...

  7. CSS3制作精美的iphone电话图标,不使用图片

    <!DOCTYPE HTML> <html lang=zh-cn> <head> <meta charset=utf-8> <title>C ...

  8. hadoop出现namenode running as process 18472. Stop it first.

    hadoop出现namenode running as process 18472. Stop it first.等等,类别似几个的出现. namenode running as process 32 ...

  9. NYOJ 372 巧克力的

    巧克力 时间限制:4000 ms  |  内存限制:65535 KB 难度:2 描写叙述 布欧能够把人变成巧克力吃了来添加他的能量,也有可能降低. 如今布欧变了n*m个巧克力,并把巧克力排成一个n*m ...

  10. 算法 《霍纳的方法java实践》

    [历史背景] 霍纳的方法是中国南宋时期的数学家秦九韶表述求解一元高次多项式的值的算法--正负开方术. 它也能够配合牛顿法用来求解一元高次多项式的根.在西方被称作霍纳算法(Horner algorith ...