Razor和HtmlHelper的使用意义
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 serverIIS
是 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类
功能:生成有数据绑定的Html标签。
为什么会出现? 很多时候我们会遇到例如以下场景在写一个编辑数据的页面时,我们一般会写例如以下代码<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的使用意义的更多相关文章
- Razor及HtmlHelper学习笔记
Razor 不是编程语言.它是服务器端标记语言. 什么是Razor? Razor 是一种允许您向网页中嵌入基于服务器的代码(Visual Basic 和 C#)的标记语法. 当网页被写入浏览器时,基于 ...
- 在AppCode中的razor调用HtmlHelper方法和UrlHelper方法
原文发布时间为:2011-05-17 -- 来源于本人的百度文章 [由搬家工具导入] 可以写一个帮助类,如下 using System.Web.WebPages;using System.Web.Mv ...
- ASP.NET,Razor语句中@符号的意义
比较下面两段代码的区别: <td> @if (item.ModifyTime.HasValue) { @item.ModifyTime.GetValueOrDefault().ToStri ...
- ASP.NET MVC 5 05 - 视图
PS: 唉,这篇随笔国庆(2015年)放假前几天开始的,放完假回来正好又赶上年底,公司各种破事儿. 这尼玛都写跨年了都,真服了.(=_=#) 好几次不想写了都. 可是又不想浪费这么多,狠不下心删除.没 ...
- C# MVC 实现登录的5种方式
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷. 学无止境,精益求精 小弟之前做过三月的MVC,后来又一直webFo ...
- 把旧系统迁移到.Net Core 2.0 日记(5) Razor/HtmlHelper/资源文件
net core 的layout.cshtml文件有变化, 区分开发环境和非开发环境. 开发环境用的是非压缩的js和css, 正式环境用压缩的js和css <environment includ ...
- ASP.NET MVC Razor HtmlHelper扩展和自定义控件
先看示例代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; using S ...
- ASP.NET Core 中文文档 第四章 MVC(3.2)Razor 语法参考
原文:Razor Syntax Reference 作者:Taylor Mullen.Rick Anderson 翻译:刘怡(AlexLEWIS) 校对:何镇汐 什么是 Razor? Razor 是一 ...
- 如何在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 ...
随机推荐
- xml和json选择奖
xml&json战争,一般能够分离两个对立阵营.党的手感json足够强大以便能够替代xml.有一方感觉json滑稽丑陋,绝对没有和xml赛可能. 为了避免"拉仇恨"(我不是 ...
- Keepalived 配置和使用
keepalived主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现.keepalived主要目的在于,其自身启动一个服务,能够实现 ...
- Codeforces Round #253 (Div. 1) B. Andrey and Problem
B. Andrey and Problem time limit per test 2 seconds memory limit per test 256 megabytes input standa ...
- Java二叉排序树(转)
一.二叉排序树定义 1.二叉排序树的定义 二叉排序树(Binary Sort Tree)又称二叉查找(搜索)树(Binary Search Tree).其定义为:二叉排序树或者是空树,或者是满足如下性 ...
- quick 2.23 它们的定义c++代码lua与总结的一些细节
它们的定义c++代码lua与总结的一些细节 参考:点击打开链接 1.自己定义 XXX.cpp .XXX.h 2.D:\quick\quick-cocos2d-x-2.2.3-rc\lib\cocos2 ...
- repeater操作
protected void rpRole_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ...
- Xamarin.Android 在VS下调试时提示 In mgmain JNI_OnLoad 程序“Mono”已退出 解决办法
原因是使用了破解版的 Xamarin,调试时不能使用共享库
- hdu 5101 Select(Bestcoder Round #17)
Select Time Limit: 4000/2000 MS (Java/Others) ...
- Leetcode:minimum_depth_of_binary_tree解决问题的方法
一. 称号 并寻求最深的二元相似.给定的二进制树.求其最小深度. 最小深度是沿从根节点,到叶节点最短的路径. 二. 分析 当我看到这个题目时.我直接将最深二叉树的代码略微改了下,把ma ...
- 玩转Web之JavaScript(二)-----javaScript语法总结(二) 涉及Date与数组的语法
Date: document.write(document.lastModified) 网页最后一次更新时间 a=new Date(); //创建 a 为一个新的时期象 y=a.getY ear( ...