ASP.NET MVC:ActionLink vs bare url

时间:2010-08-12 04:57:18

标签: html asp.net-mvc

在ASP.NET MVC中,我看到我有方便的HTML帮助程序,我可以使用它来构建表单字段和任意数量的其他小东西。但接下来是'ActionLinks'。

为什么要在HTML锚标记中使用ActionLink而不是自己编写 url

换句话说,我为什么要使用

<%: Html.ActionLink("Back to List", "QuantityTypes") %>

而不只是使用普通的'HTML和写作:

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

当然,我必须通过ActionLink获得额外的东西。我只是错过了,对吧?

4 个答案:

答案 0 :(得分:9)

操作链接会根据控制器操作区域参数为您构建正确的网址等等...它根据您的MVC路由系统中定义的URL映射规则生成URL。它会将params映射到正确的url,具体取决于它是否需要直接包含在URL中或通过查询字符串参数。

是的,您可以自己完成,只需输入所有内容,但它会为您构建URL并确保生成的URL正确无误。它是一个辅助函数......它可以帮助您生成有效的链接:)

您应该阅读Scott Guthrie's post并特别注意“Constructing Outgoing URLs from the Routing System”部分。它给出了原因并解释了利用路由系统的其他帮助者。

答案 1 :(得分:0)

您可以集中控制您的网址。因此,下次您需要更改一个用于搜索引擎优化目的时,您不必搜索应用程序中的每个位置,只需在Global.asax中切换它。

答案 2 :(得分:0)

如果要将控制器名称从“内部”更改为“外部”,该怎么办?会发生什么事?您将需要手动更改href链接。 ActionLink将执行自动路由。你不需要弄乱网址。

答案 3 :(得分:0)

在裸URL上使用ActionLink的另一个原因是您可能需要向安全资源公开下载链接,该资源只能由应用程序通过身份模拟进行访问。