Html ASP.NET MVC:ActionLink与裸url

Html ASP.NET MVC:ActionLink与裸url,html,asp.net-mvc,Html,Asp.net Mvc,在ASP.NETMVC中,我看到我有一些方便的HTML助手,可以用来构造表单字段和其他一些小东西。但还有“行动链接” 为什么要使用ActionLink,而不是自己在HTML锚定标记中编写该死的url 换句话说,我为什么要使用 <%: Html.ActionLink("Back to List", "QuantityTypes") %> 不只是使用简单的HTML和文字: <a href="/internal/quantitytypes">Back to List<

在ASP.NETMVC中,我看到我有一些方便的HTML助手,可以用来构造表单字段和其他一些小东西。但还有“行动链接”

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

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

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

不只是使用简单的HTML和文字:

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


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

操作链接将基于控制器操作区域参数等为您构建正确的URL。。。它根据MVC路由系统中定义的URL映射规则生成URL。它还将把参数映射到正确的url,这取决于它是需要直接包含在url中还是通过querystring参数包含在url中

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


你应该阅读并特别注意“一节”。它给出了原因并解释了利用路由系统的其他帮助程序。

您可以集中控制URL。因此,下次为了SEO目的需要更改一个控制器时,不必搜索应用程序中的每个位置,只需在Global.asax中切换它。

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

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

有趣。你有这样一个例子吗?对于/{controller}/{action}的默认路由,它给你带来了什么?