【.NET Core】Tag Helpers 與 HTML Helpers

什麼是TagHelpers

Tag Helpers使服務器端代碼可以在 Razor 文件中參與創建和呈現 HTML 元素。 例如,內置 ImageTagHelper 可以將版本號追加到圖像名稱。 每當圖像發生變化時,服務器都會爲圖像生成一個新的唯一版本,因此客戶端總能獲得當前圖像(而不是過時的緩存圖像)。 有多種常見任務(例如創建表單、鏈接,加載資產等)的內置Tag Helpers,公共 GitHub 存儲庫和 NuGet 包中甚至還有更多可用Tag HelpersTag Helpers使用 C# 創建,基於元素名稱、屬性名稱或父標記以 HTML 元素爲目標。 例如,應用 LabelTagHelper 屬性時,內置 LabelTagHelper 可以 HTML <label> 元素爲目標。 如果熟悉 HTML Helpers,則標記幫助程序將減少 Razor 視圖中 HTML 和 C# 之間的顯式轉換。 在很多情況下,HTML Helpers爲特定Tag Helpers提供了一種替代方法,但Tag Helpers不會替代 HTML 幫助程序,且並非每個 HTML Helpers都有對應的Tag Helpers,認識到這點也很重要。 Tag Helpers與HTML Helpers的比較更詳細地介紹了兩者之間的差異。

簡單來說TagHelper更友好,更像HTML元素

 

更多看 這篇微軟對TagHelpers的介紹

 

啓用TagHelpers

在Views文件夾的_ViewImports.cshtml文件

添加

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

 

創建鏈接對比

我們之前使用ASP.NET MVC時,使用HTML Helpers,是這樣的

<a href="@Url.Action("Index", "Home")">aaa</a>

也可以直接這樣

@Html.ActionLink("aaa", "Index", "Home")

在.NET Core MVC中,使用Tag Helpers,是這樣的

<a asp-controller="Home" asp-action="Index">鏈接</a>

 

更多對比

 

environment

在開發環境和生產環境使用不同的文件

@*開發環境有效*@
<environment include="Development">
    @*開發環境,使用不壓縮的文件,排除壓縮的文件*@
    <link rel="stylesheet" asp-href-include="css/*" asp-href-exclude="~/lib/bootstrap/dist/css/bootstrap.min.css" />
</environment>

@*其他環境*@
<environment exclude="Development">
    @*其他環境,使用壓縮的文件*@
    <link rel="stylesheet" asp-href-include="~/lib/bootstrap/dist/css/bootstrap.min.css" />
</environment>

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章