Asp.net 为什么要使用HTML.ActionLink而不是公共锚
下面的句子生成指向ASP.net MVC控制器中的操作的HTML锚:Asp.net 为什么要使用HTML.ActionLink而不是公共锚,asp.net,asp.net-mvc,razor-pages,Asp.net,Asp.net Mvc,Razor Pages,下面的句子生成指向ASP.net MVC控制器中的操作的HTML锚: @Html.ActionLink("Text", "Action", "Controller") 但下面的代码也做了同样的事情: <A href="~\Controller\Action">Text</a> 第二个选项对我来说似乎更好,因为它不太复杂,而且它允许事件将复杂的HTML元素放入其中 那么我为什么要用第一个而不是第二个呢?你可以用这个: <a href="@Url.Action(
@Html.ActionLink("Text", "Action", "Controller")
但下面的代码也做了同样的事情:
<A href="~\Controller\Action">Text</a>
第二个选项对我来说似乎更好,因为它不太复杂,而且它允许事件将复杂的HTML元素放入其中
那么我为什么要用第一个而不是第二个呢?你可以用这个:
<a href="@Url.Action("Action","Controller")">Text or Inner html</a>
此代码允许您将HTML放入其中
类似这样的代码:“~\Controller\Action”如果使用自定义路由,可能会导致问题。
例如,您希望在URL中的控制器前面使用操作名称。在我看来,第一个看起来更好,因为您可以在特定字段中添加路由参数和HtmlAttribute。容易阅读。比如说
@Html.ActionLink("LinkText", "Action", "Controller", new { id = item.ID }, new htmlAttributes {})
ActionLink()
方法将始终根据其参数生成正确的url(如果您希望
中包含html元素,则通常使用,在这种情况下,第二个选项是否会生成正确的url?