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

这节讲 一下ASP.NET MVC中的Helper。

何谓Helper,其实就是在View中为了实现一些灵活功能而写的方法组。

其实ASP.NET MVC的View是Aspx的页面,本身可以声明定义方法,那为什么要有Helper呢?

其实无非是将界面与逻辑分离,而且Asp.net MVC也并不只支持Aspx一种View(还可以扩展出来很多),在扩展包中,也有Castle的NVelocity引擎和Boo,以及ViewSpark的页面。

所以,如果在Aspx中定义方法的话会影响其扩展性和可移植性.而且代码也不太好看.

一、UrlHelper.Action

UrlHelper的Action方法 用于生成一个URL地址,它的使用方法为

当前Controller下Index这个Action <%=Url.Action(“Index”)%> index

当前Controller下Index这个Action <%=Url.Action(“Index”,new{id=1})%> index?id=1

EiceController下Index这个Action <%=Url.Action(“Index”,"Eice")%> /eice/index

EiceController下Index这个Action <%=Url.Action(“Index”,"Eice",new{id=1})%> /eice/index?id=1

例如我在View中写Url.Action("Index","Home"),运行后则会生成/Home/Index这个地址,如果你的系统中的URL Routing规则总是变化的话这个Helper则是你必备之选.

二、UrlHelper.Encode

这也是UrlHelper的一个方法 使用方法 如<%=Url.Encode("中文")%>功能与Server.UrlEncode相同,这里不多说了

三、UrlHelper.Content

用于服务器路径转换为绝对路径。

<%=Url.Content("~/content/site.css") %>

最后的结果为

/content/site.css 

如果你有特殊需要可以用3.0新特性,扩展方法来为UrlHelper来增加新的功能,下一节我们讲如何使用Helper来显示Html

posted @ 2009-03-12 01:46 重典 阅读(8280) 评论(6) 编辑 收藏

 回复 引用 查看   
#1楼2009-03-13 09:11 | 逸之羊      
沙发.好!
 回复 引用 查看   
#2楼2009-03-13 12:59 | 郁闷的翩翩      
沙发没了板凳也行。
 回复 引用 查看   
#3楼[楼主]2009-03-13 13:20 | 重典      
@郁闷的翩翩
人啊

 回复 引用 查看   
#4楼2009-03-13 22:30 | 要有好的心情      
再次感谢您的资料
 回复 引用 查看   
#5楼2009-04-24 15:40 | xcccb      
这一节看的有点晕了..有点看不懂..实验也不好做了.这个UrlHelper.Action要如何去实现.没有讲清楚来.
还有就是我之前现的页面链接是用
<%=Html.ActionLink("Back to List", "Index") %>

可是用了
<%=Url.Action("Index","Home") %>
之后页面上只出现了一个"/"附号.根本没有链接.

是不是在controler中要另外写些东西

 回复 引用 查看   
#6楼2009-06-27 13:58 | ruruya      
@xcccb
-------------
看了下面这句话 你就明白<%=Url.Action("Index","Home") %> 和<%=Html.ActionLink("Back to List", "Index") %>的区别了
---------------------
<a href="<%=Url.Action("Index","Home")%>">首页</a>