MVC中的HtmlHelper详解
熟悉MVC开发的朋友都应该知道在MVC中,每一个Controller都对应一个View,并且CS文件和对应的ASPX文件也被分离了,更重要的是不再有服务器端控件在工具箱中,不再是代码后至了。MVC中的ASPX页面和以前我们使用Winform中的页面还是有很大的区别的。
MVC将web开发还原到最原始的”请求-->处理-->相应“的模型上来。而又有加快开发速度,提高代码可重用性,微软为开发者提供了HtmlHelper类,该类可以让开发者快速开发前台页面,同时也支持可扩展的接口,并且前台页面中的标签也可以实现重用。同时,该类还提供了强类型标签更是在开发阶段就实现编译检测,提高了编码的效率;以及还提供了模板编辑功能页面嵌套等功能。
在MVC中所有的请求都归结到控制器下面的Action。所有所有的请求都是到指定一个具体的Action,Url的格式是根据路由规则来确定的。比如,默认的路由规则中定义的请求地址格式是:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
则请求的Url地址是
http://localhost/Home/Index
我们可以看到请求的地址不再跟WebForm中的请求地址就是页面的相对路径,而在MVC中请求的地址是一个逻辑地址,而不是物理地址的路径。
在页面中添加超链接<a/>标签的时候,其href属性就有了变化性,如果想保证href属性可以正常跳转,其格式必须与路由规则的格式保持一致。也就是当路由规则发生变化的时候,href属性也必须跟着变化。
以前我们使用href是使用下面的格式来进行页面跳转:
<a href="/Index/Index">代码改变世界</a>
这种方法存在严重的弊端,当路由规则发生改变,这种方法就不再适用;
我们可以使用Url.Action()方法来解决上述出现的问题:
<a href ="<%:Url.Action("Index","Index") %>">代码改变世界</a>
这样就可以保证当路由规则发生改变,<a/>标签依然可以进行正确的跳转,使href中的链接地址具有自适应能力;
此外,我们还可以和使用HtmlHelper.Action()方法解决(推荐使用):
<%:Html.ActionLink("代码改变世界","Index","Index") %> 页面之间不传递参数
<%:Html.ActionLink("代码改变世界", "Index", "Index", new { Name = "code1" },null)%> 页面之间传递参数
此外,HtmlHelper还为我们提供了很多可以创建html标签的方法,具体就可以"Html."的方法来查看更多的方法。
MVC中的HtmlHelper详解的更多相关文章
- Attribute自定义特性+Asp.net MVC中的filter详解
转载自:http://blog.csdn.net/wangyy130/article/details/44241957 一.filter简介 在了解自定义特性前,先引入一个概念filter,它是MVC ...
- MVC图片上传详解 IIS (安装SSL证书后) 实现 HTTP 自动跳转到 HTTPS C#中Enum用法小结 表达式目录树 “村长”教你测试用例 引用provinces.js的三级联动
MVC图片上传详解 MVC图片上传--控制器方法 新建一个控制器命名为File,定义一个Img方法 [HttpPost]public ActionResult Img(HttpPostedFile ...
- Expression Tree 扩展MVC中的 HtmlHelper 和 UrlHelper
表达式树是LINQ To everything 的基础,同时各种类库的Fluent API也 大量使用了Expression Tree.还记得我在不懂expression tree时,各种眼花缭乱的A ...
- Newtonsoft.Json C# Json序列化和反序列化工具的使用、类型方法大全 C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数 C# 算法题系列(一) 两数之和、无重复字符的最长子串 DateTime Tips c#发送邮件,可发送多个附件 MVC图片上传详解
Newtonsoft.Json C# Json序列化和反序列化工具的使用.类型方法大全 Newtonsoft.Json Newtonsoft.Json 是.Net平台操作Json的工具,他的介绍就 ...
- Spring学习 6- Spring MVC (Spring MVC原理及配置详解)
百度的面试官问:Web容器,Servlet容器,SpringMVC容器的区别: 我还写了个文章,说明web容器与servlet容器的联系,参考:servlet单实例多线程模式 这个文章有web容器与s ...
- php中关于引用(&)详解
php中关于引用(&)详解 php的引用(就是在变量或者函数.对象等前面加上&符号) 在PHP 中引用的意思是:不同的变量名访问同一个变量内容. 与C语言中的指针是有差别的.C语言中的 ...
- JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解
二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...
- AngularJS select中ngOptions用法详解
AngularJS select中ngOptions用法详解 一.用法 ngOption针对不同类型的数据源有不同的用法,主要体现在数组和对象上. 数组: label for value in a ...
- 【转载】C/C++中extern关键字详解
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义.此外extern也可用来进行链接指定. 也就是说extern ...
随机推荐
- C程序编程规范一
和身边一些学弟们接触发现他们的编程习惯不是太好,对一些基本的规范不重视,今天有时间写一些基本的规范给一些刚入门的新手们,高手可忽略. 首先做项目来说需要建立工程,一般需要几个到几百个上上千个C文件,这 ...
- noip第14课资料
- 描述linux下文件删除的原理
Linux文件删除原理: Linux是通过link的数量来控制文件删除的,只有当一个文件不存在任何link的时候,这个文件才会被删除. 一般来说,每个文件都有2个link计数器:i_count 和 i ...
- 背水一战 Windows 10 (68) - 控件(控件基类): UIElement - Pointer 相关事件, Tap 相关事件, Key 相关事件, Focus 相关事件
[源码下载] 背水一战 Windows 10 (68) - 控件(控件基类): UIElement - Pointer 相关事件, Tap 相关事件, Key 相关事件, Focus 相关事件 作者: ...
- zabbix docker - 安装和初始化配置
zabbix docker - 安装和初始化配置 安装zabbix server docker-mysql版本 zabbix server支持不同的数据库(详见zabbix的docker hub),这 ...
- jquery中$().each() 和$.each()
// 形参1: 当前的下标 // 形参2: 当前的dom节点元素 $('#div1').find('div').each(function (i, item) { // this === item 当 ...
- XXE(XML External Entity attack)XML外部实体注入攻击
导语 XXE:XML External Entity 即外部实体,从安全角度理解成XML External Entity attack 外部实体注入攻击.由于程序在解析输入的XML数据时,解析了攻击者 ...
- scikit-image 图像处理库介绍
今天学习图像处理的时候,无意中看到了scikit 软件包,抱着学习的态度,这里做个记录,方便以后翻阅. 概念:scikit-image 是一种开源的用于图像处理的 Python 包.它包括分割,几何变 ...
- Rip配置
Rip配置 首先建立如图拓扑图 分别配置两台电脑的ip地址和子网掩码和网关.如图所示. 在router0上配置两个端口的IP以及子网掩码 在路由器router0上配置rip2协议.里面的no auto ...
- 课程四(Convolutional Neural Networks),第二 周(Deep convolutional models: case studies) ——3.Programming assignments : Residual Networks
Residual Networks Welcome to the second assignment of this week! You will learn how to build very de ...