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 ...
随机推荐
- JSP简单的练习-用户登记表
<%@ page language="java" import="java.util.*" pageEncoding="gb2312" ...
- zoj 2874 & poj 3308 Paratroopers (最小割)
意甲冠军: 一m*n该网络的规模格.详细地点称为伞兵着陆(行和列). 现在,在一排(或列) 安装激光枪,激光枪可以杀死线(或塔)所有伞兵.在第一i安装一排 费用是Ri.在第i列安装的费用是Ci. 要安 ...
- setsockopt角色
功能描写叙述: 获取或者设置与某个套接字关联的选 项. 选项可能存在于多层协议中.它们总会出如今最上面的套接字层. 当操作套接字选项时.选项位于的层和选项的名称必须给出.为了操作套接字层的选项,应该 ...
- 九度OJ 1177 查找 (模拟)
题目1177:查找 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5659 解决:1667 题目描写叙述: 读入一组字符串(待操作的),再读入一个int n记录记下来有几条命令,总共同拥有 ...
- canvas绘制百分比圆环进度条
开发项目,PM会跟踪项目进度:完成某个事情,也可以设置一个完成的进度. 这里用canvas绘制一个简单百分比圆环进度条. 看下效果: 1. 动画方式 2. 静默方式 // 贴上代码,仅供参考 ...
- 认识mongoDB数据库
mongodb中有三元素:数据库,集合,文档,其中“集合”对应关系型数据库中的“表”,“文档”对应“行”. 安装mongoDB: 去官网下载对应系统的mongoDB压缩包,解压后将文件夹重命名为mon ...
- 浅谈web网站架构演变过程(转)
前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变. 该系统具备的功能: 用户模块:用户注册和管理 商品模块:商品展示和管理 交易模块:创建交易和管理 阶 ...
- CentOS构造SNMP
<span style="font-size:14px;">本文介绍怎样在CentOS环境下配置一个简单的SNMP服务</span> 软件安装 切换到系统管 ...
- Insecure default in Elasticsearch enables remote code execution
Elasticsearch has a flaw in its default configuration which makes it possible for any webpage to exe ...
- SQL Server数据库附加失败:错误5120和错误950
再次敲机房,想參考曾经的物理模型,结果在附加数据库这一环节出现了点问题,以下总结一下. 1.附加数据库失败,错误5120 对于这样的错误,我在网上搜集了一下,主要有下面几种解决的方法: 方法一:将要附 ...