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 ...
随机推荐
- Oracle实现like多个值的查询
问题背景描述: 某天客户有一个需求,给定一批的手机号码或者电话号码,查询出相关的通话记录,以及相关的一些信息. 客户给定的被叫号码如图所示: 查询出来的结果如下图所示(本批次的结果不是上图导入的结 ...
- two sum --无脑法
public class Solution { /* * @param numbers: An array of Integer * @param target: target = numbers[i ...
- 第 1 篇 Scrum 冲刺博客
各个成员在 Alpha 阶段认领的任务 姓名 Alpha 阶段认领的任务 徐婉萍 创建服务器.域名,环境搭建查询界面及页面的设计,查询方法的编写 谭燕 支出.收入添加界面及设计,收入.支出的方法编写, ...
- debian安装tftp服务
步骤1:安装 apt-get install tftp-hpa tftpd-hpa tftp-hpa是client,tftpd-hpaserver 步骤2:建立tftp目录 mkdir /tftpbo ...
- 机器学习技法笔记:01 Linear Support Vector Machine
Roadmap Course Introduction Large-Margin Separating Hyperplane Standard Large-Margin Problem Support ...
- RawConfigParser 与 ConfigParser ——Python的配件文件读取模块
一般情况都是使用ConfigParser这个方法,但是当我们配置中有%(filename)s这种格式的配置的时候,可能会出现以下问题: configparser.InterpolationMissin ...
- 学习react
推荐资源: 一位react的最初构建者写的学习react的建议,这是翻译过的http://www.360doc.com/content/16/0129/07/13518188_531384175.sh ...
- 开源API测试工具 Hitchhiker v0.10 - 中文版
Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持自动化测试, 数据对比,压力测试,支持脚本定制请求,可以轻松部署到本地,和你的team成员一起协作测试Api. ...
- Python日常实践(1)——SQL Prompt的Snippets批量整理
引言 个人平时在写sql脚本的时候会使用到SQL Prompt这款插件,除了强大的智能提示和格式化sql语句功能,我还喜欢使用Snippets代码段功能.比如我们可以在查下分析器输入ssf后按Tab键 ...
- Linux shell逐行读取文件的方法
方法1:while循环中执行效率最高,最常用的方法. function while_read_line_bottom(){ while read line do echo $line done < ...