ASP.NET MVC: ActionLink与裸URL

10
在ASP.NET MVC中,我发现有很方便的HTML帮助程序,可以用来构建表单字段和许多其他小东西。但是,还有'ActionLinks'。 为什么要使用ActionLink而不是在HTML锚标签中自己编写URL? 换句话说,我为什么要使用
<%: Html.ActionLink("Back to List", "QuantityTypes") %>

不要仅仅使用普通的HTML编写:

<a href="/internal/quantitytypes">Back to List</a>

我肯定使用ActionLink会得到一些额外的东西,只是我漏掉了什么,对吧?

4个回答

9
该操作链接会根据控制器动作区域参数等内容为您构建正确的URL... 它基于在您的MVC路由系统中定义的URL映射规则来生成URL。它还会根据需要将参数映射到正确的URL,无论是直接包含在URL中还是通过查询字符串参数。

您可以自己完成此操作并手动键入所有内容,但它会为您构建URL并确保生成的URL是正确的。这是一个帮助函数...它帮助您生成有效的链接 :)

您应该阅读Scott Guthrie的帖子,并特别注意部分“从路由系统构建传出URL”。它解释了为什么以及其他利用路由系统的帮助程序。


针对默认路由 /{controller}/{action},它能为您带来什么好处? - LarryBud

0
使用ActionLink而不是裸url的另一个原因是,您可能需要公开下载链接到只能通过身份模拟由应用程序访问的安全资源。

0

您可以集中控制您的URL。因此,下次您需要出于SEO目的更改其中一个时,您不必在应用程序的每个地方搜索,只需在Global.asax中切换即可。


2
有趣。你有这个的例子吗? - Dan Esparza

0
如果你想把控制器名称从“Internal”改成“External”,该怎么办?你需要手动更改href链接。ActionLink会自动路由,你不需要去处理URL。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接