前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ASP.NET MVC 重点教程一周年版 第八回 Helper之演化

ASP.NET MVC 重点教程一周年版 第八回 Helper之演化

作者头像
重典
发布2022-04-11 12:54:30
3020
发布2022-04-11 12:54:30
举报
文章被收录于专栏:重典.NET

凡事出现必有原因

就像Filter,它是为了解决在一类的Action之前或之后执行统一的代码而产生的。

而Helper则是为了方便View的开发而产生的。

下面我们来解决几个问题,来看看Helper是怎么演化出来的。

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

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

代码语言:javascript
复制
<a href="/home/index">首页</a>

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

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

代码语言:javascript
复制
            routes.MapRoute(
                "Default",  
                "{controller}/{action}/{id}",
                new { controller = "Home", action = "Index", id = "" }
            );

改为了

代码语言:javascript
复制
            routes.MapRoute(
                "Default",  
                "{controller}/{action}.htm",
                new { controller = "Home", action = "Index" }
            );

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

代码语言:javascript
复制
<a href="/home/index.htm">首页</a>

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

那我们应该怎么办呢?

所以我们就要用UrlHelper

代码语言:javascript
复制
<a href="<%=Url.Action("Index","Home")%>">首页</a>

这样在Route规则变化的情况下也会得到正确的地址

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

代码语言:javascript
复制
<%=Html.ActionLink("首页","Index","Home")%>

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

上述的浅见描述了为何出现Helper,希望新学习ASP.NET MVC的朋友有所帮助。

ASP.NET MVC Framework 系列

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2009-03-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档