凡事出现必有原因

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

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

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

题目:如何在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.ActionLink("首页","Index","Home")%>

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

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

转载于:https://www.cnblogs.com/cxd4321/archive/2009/09/12/1565408.html

ASP.NET MVC 重点教程一周年版 第八回 Helper之演化 【转】相关推荐

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

    凡事出现必有原因 就像Filter,它是为了解决在一类的Action之前或之后执行统一的代码而产生的. 而Helper则是为了方便View的开发而产生的. 下面我们来解决几个问题,来看看Helper是 ...

  2. ASP.NET MVC 重点教程一周年版 第七回 UrlHelper 【转】

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

  3. ASP.NET MVC 重点教程一周年版 第九回 HtmlHelper 【转】

    许多时候我们会遇到如下场景 在写一个编辑数据的页面时,我们通常会写如下代码 1: <input type="text" value='<%=ViewData[" ...

  4. ASP.NET MVC 重点教程一周年版 第二回 UrlRouting 【转】

    一.什么是UrlRouting 你可以使用UrlRouting来配置一些URL的映射,使用户可以按你的规则来访问网站. 使用UrlRouting,一定要规定URL模式,它包括一个位置标识,它将在你请求 ...

  5. ASP.NET MVC 重点教程一周年版 第九回 HtmlHelper

    许多时候我们会遇到如下场景 在写一个编辑数据的页面时,我们通常会写如下代码 1: <input type="text" value='<%=ViewData[" ...

  6. asp.net 报表页面模板_Stimulsoft ASP.NET MVC报表教程:在设计器中保存报表模板

    Stimulsoft Reports.Net最新版下载:https://www.evget.com/product/1071/download 本示例说明如何加载报表模板并在设计器中对其进行编辑. 首 ...

  7. 【译】ASP.NET MVC 5 教程 - 4:添加模型

    原文:[译]ASP.NET MVC 5 教程 - 4:添加模型 在本节中,我们将添加一些管理电影数据库的类,这些类在ASP.NET MVC 应用程序中扮演"Model"的角色. 我 ...

  8. ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第一篇:准备工作

    摘要       本文将简要介绍这个文章系列的目的.形式及大体内容.并且完成开始学习这个系列前所必要的准备工作. 前言       ASP.NET MVC作为微软官方的MVC解决方案,推出有一段时间了 ...

  9. ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第三篇

    摘要       本文对ASP.NET MVC的全局运行机理进行一个简要的介绍,以使得朋友们更好的理解后续文章. 前言       在上一篇文章中,我们实现了第一个ASP.NET MVC页面.对于没有 ...

最新文章

  1. java 调内存_java内存设置
  2. 你真的了解try{ return }finally{}中的return?
  3. [Win32::Console]Perl终端版生命游戏
  4. DLL文件无法删除怎么解决
  5. 基于SLF4J MDC机制实现日志的链路追踪
  6. [python 进阶] 第7章 函数装饰器和闭包
  7. RSA2013系列(1):中国成为热点
  8. graphics | 基础绘图系统(九)——栅格图、点密度图、等高线(填充)图、三维图...
  9. repo start master --all 和repo start --all master区别
  10. php input样式,input能改变css样式吗
  11. 关于:Google Chrome 官方下载地址
  12. python获取像素值_从PIL获取像素值列表
  13. 初中计算机excel考试系统,基于Excel构建计算机考试系统
  14. R语言使用aggregate函数和median函数计算每个分组数据的中位数
  15. word怎么删除空白页,Word Mac删除空白页面的图文方法
  16. 教你如何上传代码到GitHub
  17. MATLAB--数字图像处理 图像噪声与滤波处理
  18. 如何修改HBulider X注释字体的颜色
  19. 数据仓库-你不知道的HSQL?
  20. 360N4救砖刷机 全程完整操作

热门文章

  1. php悬浮图片,在JS中如何实现图片居中悬浮效果
  2. js修改本地json文件_Flutter加载本地JSON文件教程建议收藏
  3. 二叉树的层序遍历 IIPython解法
  4. 全分布式集群搭建总结
  5. Linux命令工作中常用的总结
  6. 处于计算机学科的基础地位,谈谈离散数学在计算机学科中的地位和作用(原稿)...
  7. 最近缺货涨价的MCU有这些国产可以替代对标国外!(TOP 60)
  8. 单片机高手必知的三个重要步骤(干货分享)
  9. js渲染模板html,一个javascript模板渲染组件,laytpl
  10. 单片微型计算机 第九章自测题,单片微型计算机网上练习题答案..doc