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

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

凡事出现必有原因

就像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的朋友有所帮助。

 

ASP.NET MVC Framework 系列

相关文章
|
3月前
|
开发框架 前端开发 JavaScript
ASP.NET Web Pages - 教程
ASP.NET Web Pages 是一种用于创建动态网页的开发模式,采用HTML、CSS、JavaScript 和服务器脚本。本教程聚焦于Web Pages,介绍如何使用Razor语法结合服务器端代码与前端技术,以及利用WebMatrix工具进行开发。适合初学者入门ASP.NET。
|
3月前
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
|
6月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
83 7
|
6月前
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
122 0
|
7月前
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
87 0
|
7月前
|
开发框架 前端开发 安全
ASP.NET MVC 如何使用 Form Authentication?
ASP.NET MVC 如何使用 Form Authentication?
104 0
|
7月前
|
开发框架 .NET
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
195 0
|
前端开发 数据安全/隐私保护
net MVC中的模型绑定、验证以及ModelState
net MVC中的模型绑定、验证以及ModelState 模型绑定 模型绑定应该很容易理解,就是传递过来的数据,创建对应的model并把数据赋予model的属性,这样model的字段就有值了。
1709 0
|
10月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
252 0
|
10月前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
99 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等