题目:如何在View中写一个超级连接连接到主页?

这个问题看起来很好回答:

<a href="/home/index">首页</a>

其实上面这种不能称之为方案的写法其实是最好的,没有调用任何的方法,仅用纯的HTML就解决了问题。

但是如果Route规则改变了那怎么办呢?就像原来的

routes.MapRoute( "Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = "" } );

改为了

routes.MapRoute( "Default", "{controller}/{action}.htm", new { controller = "Home", action = "Index" } );

扩展名变了,如果按上个答案那连接就要改为

<a href="/home/index.htm">首页</a>

如果项目中涉及到此Route规则的引用有很多的话,那么这么批量的改肯定会累死人的,而且还容易出错

那我们应该怎么办呢?

所以我们就要用UrlHelper

<a href="<%=Url.Action("Index","Home")%>">;首页</a>   这样在Route规则变化的情况下也会得到正确的地址跳转

上面的方法使Url可以应对变化,可是还有一个问题就是href=”<%=%>”这种方式在VS中是很难智能感知和调试的,所以要有一种很好的调试方式于是就产生了最初的HtmlHelper

<%=Html.Action("首页","Index","Home")%>

这样就可以方便智能感知及调试了,而且代码也比较干净

ASP.NET MVC 第八回 Helper之演化的更多相关文章

  1. 玩转Asp.net MVC 的八个扩展点

    MVC模型以低耦合.可重用.可维护性高等众多优点已逐渐代替了WebForm模型.能够灵活使用MVC提供的扩展点可以达到事半功倍的效果,另一方面Asp.net MVC优秀的设计和高质量的代码也值得我们去 ...

  2. Asp.net MVC 的八个扩展点

    http://www.cnblogs.com/richieyang/p/5180939.html MVC模型以低耦合.可重用.可维护性高等众多优点已逐渐代替了WebForm模型.能够灵活使用MVC提供 ...

  3. ASP.NET MVC 第七回 UrlHelper

    这节讲 一下ASP.NET MVC中的Helper. 何谓Helper,其实就是在View中为了实现一些灵活功能而写的方法组. 其实ASP.NET MVC的View是Aspx的页面,本身可以声明定义方 ...

  4. ASP.NET MVC 第六回 过滤器Filter

    在Asp.netMvc中当你有以下及类似以下需求时你可以使用Filter功能 判断登录与否或用户权限 决策输出缓存 防盗链 防蜘蛛 本地化与国际化设置 实现动态Action Filter是一种声明式编 ...

  5. ASP.NET MVC 3 and the @helper syntax within Razor

    Friday, May 13, 2011 ASP.NET MVC 3 supports a new view-engine option called “Razor” (in addition to ...

  6. ASP.NET MVC 第三回 Controller与View

    这节我们让ASP.NET MVC真正的跑起来 一.新建Controller 首先我们自己新建一个新的Controller在Controllers上点右键,添加,Controller选项   之后出现一 ...

  7. ASP.NET MVC 4 (八) URL链接和Ajax帮助函数

    使用帮助函数创建链接 MVC提供一些帮助函数创建链接,这些函数根据路径映射表自动调整生成的URL: 说明 示例 输出结果 应用程序相对URL Url.Content("~/Content/S ...

  8. ASP.NET MVC教程八:_ViewStart.cshtml

    一.引言 _ViewStart.cshtml是在ASP.NET MVC 3.0及更高版本以后出现的,用Razor模板引擎新建项目后,Views目录下面会出现一个这样的文件: 打开_ViewStart. ...

  9. ASP.NET MVC 第四回 向View传值

    一.ViewData与TempData属性来向View页传递对象 上文中已经提到,使用ViewData可以将数据由Controller传递到View 在前文中我们建立了EiceController类  ...

随机推荐

  1. 同一個Loader對象傳入不同參數時,从数据库中查询的結果每次都一樣

    發現問題: LoaderManager().initLoader()方法調用時會根據第一個參數ID去判斷是否已經存在一個Loader加載器,如果存在則複 用,不存在則建一個新的加載器.由於我第一次已經 ...

  2. Windows下Redis中RedisQFork位置调整

    redis-server.exe redis.windows.conf 使用上面命令启动redis服务的时候报了以下错误信息: The Windows version of Redis allocat ...

  3. ORA-32001: write to SPFILE requested but no SPFILE specified at startup

    SQL> alter system set  sga_max_size=2048M scope=spfile; alter system set  sga_max_size=2048M scop ...

  4. wikioi 1514 and ZJOI2006 书架

    1514 书架 0人推荐 收藏 发题解 提交代码 报错 题目描述 输入描述 输出描述 样例输入 样例输出 提示 题目描述 Description 小 T有一个很大的书柜.这个书柜的构造有些独特,即书柜 ...

  5. cocos2d-x 使用UIWebView加载网页(顺便可以看到如何用OC调C++)

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=248 前段时间项目中要微博授权登 ...

  6. HDU-2527 Safe Or Unsafe

    http://acm.hdu.edu.cn/showproblem.php?pid=2527 建哈夫曼树,哈夫曼编码,求wpl值. Safe Or Unsafe Time Limit: 2000/10 ...

  7. HDU-2710 Max Factor

    看懂: Max Factor Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  8. SQL Server 2005 To Oracle

    近期因为项目需要,将SQLServer2005转成Oracle 在这里介绍下转换步骤: 1. 准备好你要转换的数据,如图 2. 右键单击 任务/导出数据,如图 3. 执行完之后就打开选择数据源页面,填 ...

  9. PHP中zlib扩展实现GZIP压缩输出各种方法总结

    一般情况下我们出现大量数据传输理希望减少服务器的带宽压力,会采取一种方式来压缩文件传输,php中用zlib也可以实现gzip压缩输出,下面我们来看GZIP压缩输出各种方法总结. GZIP(GNU-ZI ...

  10. [NOIP2005]采药

    2005年NOIP全国联赛普及组 [题目描述 Description] 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个 ...