凡事出现必有原因

就像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="&lt;%=Url.Action("Index","Home")%>"&gt;首页</a>   这样在Route规则变化的情况下也会得到正确的地址   转

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

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

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

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

ASP.NET MVC Framework 系列

转载于:https://blog.51cto.com/chsword/144417

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. 生态伙伴 | Canva上线飞书应用目录,帮你零门槛轻松做出大师级设计!
  2. 我眼中的Linux设备树(二 节点)
  3. Vue+ElementUI实现文件的下载与上传
  4. mysql身份验证失败_SMTP身份验证失败PAM-MySQL无法进行身份验证
  5. python朴素贝叶斯分类MNIST数据集
  6. echarts 统计图如何实现打印导出
  7. toString和valueOf使得对象访问时显示一个特定格式的字符串,但是可以进行数字运算...
  8. python批量修改文件夹名
  9. Python自动化测试之PO模式
  10. Python(高级FTP作业)
  11. 使用mJS进行物联网嵌入式脚本和开发的新方法
  12. C语言代码(打印国际象棋棋盘)
  13. 小朋友学数学(22):三角函数
  14. arduino教学:红外遥控车
  15. ARM Linux异常处理之data abort(一)
  16. Leetcode5238 找出给定方程的正整数解
  17. python3正则表达式替换_在Python 3中加速数百万的正则表达式替换
  18. 基于Pytorch的3D卷积
  19. HTML_超级链接详细讲解
  20. 三维地图搜索的商业模式在哪儿[转]

热门文章

  1. webpack配置路径问题
  2. 基于 Java Web 的毕业设计选题管理平台--选题报告与需求规格说明书
  3. linux C总结篇(进程)
  4. sqlmap注入检测经验0x01
  5. 大数据专家手把手教你打造实时数据湖
  6. 人人可懂的机器学习入门要点和阅读路径:学什么?怎样学?
  7. 什么是Apache Spark?这篇文章带你从零基础学起
  8. 不会用Photoshop抠图?Python助你一键“除”人!
  9. 26岁创造UNIX的编程大佬,退休后却成为一名飞行员
  10. Spring Boot开发之流水无情(二)