为什么使用HTML.ActionLink代替Common锚

时间:2018-09-21 22:08:27

标签: asp.net asp.net-mvc razor-pages

下面的句子会生成一个HTML锚点,该锚点指向ASP.net MVC控制器中的操作:

@Html.ActionLink("Text", "Action", "Controller")

但是下面的代码做同样的事情:

<A href="~\Controller\Action">Text</a>

第二个选项对我来说似乎更好,因为它不那么复杂,并且允许事件将复杂的HTML元素放入其中。

那么我有理由在第二个上使用第一个吗?

2 个答案:

答案 0 :(得分:1)

您可以使用此:

<a href="@Url.Action("Action","Controller")">Text or Inner html</a>

此代码允许您将HTML放入其中。

像这样的代码:如果使用自定义路由,“〜\ Controller \ Action”可能会导致问题。 例如,您想在URL中在Controller之前使用Action的名称。

答案 1 :(得分:0)

我认为第一个看起来更好,因为您可以在特定字段中添加路由参数和htmlAttributes。易于阅读。例如

@Html.ActionLink("LinkText", "Action", "Controller", new { id = item.ID }, new htmlAttributes {})