在 ASP.NET Razor 视图中,我看到过以两种不同方式创建的链接:
@Html.ActionLink("Download", "Download", new { id = item.Id })
Run Code Online (Sandbox Code Playgroud)
和
<a asp-area="" asp-controller="MyController" asp-action="Download" asp-route-id="@item.Id">Download</a>
Run Code Online (Sandbox Code Playgroud)
一种方法比另一种方法有优势吗?语法@Html.ActionLink()看起来更紧凑,但也许不允许对最终<a/>标签进行尽可能多的控制?谢谢!
第一种是 HTML helper 方法,存在于 MVC4 和 5 中。第二种方法称为 Tag helpers,出现在 asp.net core 中。它看起来更像纯 HTML 语法,因此即使不太熟悉 C# 的 UI 设计人员也可以使用它们来创建链接。
链接标签助手可以做任何ActionLink助手能做的事情,甚至更多。例如,使用链接标签助手,您可以创建这样的 HTML 标记。
<a asp-action="Search" asp-controller="Home">
<i class="glyphicon glyphicon-search"></i>
</a>
Run Code Online (Sandbox Code Playgroud)
您无法生成上述类型的标记(带有 helper 的锚标记内的其他元素标记)ActionLink。
请记住,您可以在 asp.net core 视图中使用 HTML 帮助器方法。但从 HTML 角度来看,标签助手更容易阅读。
比较在标签帮助器方法中渲染 SELECT 元素的代码
<select asp-for="UserId" asp-items="@Model.UserList">
<option>Select one</select>
</select>
Run Code Online (Sandbox Code Playgroud)
与
@Html.DropDownListFor(a=>a.UserId, Model.UserList,"select one")
Run Code Online (Sandbox Code Playgroud)
恕我直言,标签帮助器方法对设计者更加友好且可读
| 归档时间: |
|
| 查看次数: |
135 次 |
| 最近记录: |