ASP.NET?Core?MVC中Form?Tag?Helpers用法介紹
簡介
我們已經(jīng)介紹過Tag Helpers以及一些最常用的Tag Helpers,也談到了緩存Tag Helpers。在這篇文章中,我們將討論表單Tag Helpers。
HTML或Web表單通過使用各種HTML元素用于收集來自用戶的輸入,如輸入框、復選框、單選按鈕、下拉列表等。使用 <form> 元素時,我們通常使用POST請求。雖然也可以使用GET請求,不過GET請求建議提交于少量、非敏感的數(shù)據(jù)來獲取數(shù)據(jù)。

ASP.NET Core MVC提供了一些Form Tag Helpers,讓我們看看最重要的是什么。
Form Tag Helper
當我們使用<form>元素時,ASP.NET Core MVC會自動添加防御CSRF攻擊保護措施;它通過生成隱藏的請求驗證令牌以防止CSRF攻擊。
看一個簡單的例子:

此代碼輸出的界面如下:

然而,這并不是全部,在幕后發(fā)生了什么:

請注意在HTTP Post操作方式中,RequestVerificationToken 與內(nèi)置的[ValidateAntiForgeryToken]屬性一起工作,同時,該請求方法會被標記為post方式。
Form Tag Helper的還提供了asp-route-{ParameterName}屬性,其中參數(shù)名稱為被添加到路由的值;并且還提供了@Html.BeginForm和@Html.BeginRouteForm另一種清晰的替代方式。
如果我們添加一個自定義路由:

并將表單修改為如下:

我們得到以下HTML:

它將執(zhí)行與剛才指定的 controller 和 action 方法。
這是使用舊的HTML Helpers語法:
@using (Html.BeginForm("Edit", "Categories")) {
}新的語法是:
<form asp-action="Edit" asp-controller="Categories">{
}第一個可能看起來更短更好,但第二個更自然,對于設(shè)計師或一名JS開發(fā)人員來說,在使用Angular、React的過程中,這將會更加自然。
Input Tag Helper
這一個很簡單,它是@Html.EditorFor(m => m.Name)的替代方式。
假設(shè)我們有一個具有 Name 屬性的視圖模型:
<input asp-for="Name" />`
會產(chǎn)生如下代碼:
<input type="text" id="Name" name="Name" />
Label Tag Helper
這一個也很簡單,它是@Html.LabelFor(m => m.Name)的替代方式。
它與輸入框Tag Helper配合使用:
<input asp-for="Name" />
<label asp-for="Name" />與其它一樣,也具有智能感知功能,一旦您開始鍵入,就會檢測屬性的名稱:

如果我們將 Display 特性應(yīng)用于 Name 屬性:

這是我們將獲得的HTML內(nèi)容:
<label for="Name">Category Name</label>
TextArea Tag Helper
這一個非常類似于Input Tag Helper:

以下Razor代碼:
<textarea asp-for="Name"></textarea>`
我們將得到以下輸出:

Validation Message Tag Helper
我們使用Validation Tag Helper為我們的視圖模型的屬性顯示驗證消息,使用方式也很簡單:
<span asp-validation-for="Name"></span>
我們得到的HTML:
<span class="field-validation-valid" data-valmsg-for="Name" data-valmsg-replace="true"></span>
到此這篇關(guān)于ASP.NET Core MVC中Form Tag Helpers用法的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
asp.net使用DataTable構(gòu)造Json字符串的方法
這篇文章主要介紹了asp.net使用DataTable構(gòu)造Json字符串的方法,涉及asp.net字符串序列化、遍歷及構(gòu)造等操作技巧,需要的朋友可以參考下2015-12-12
MVC+EasyUI+三層新聞網(wǎng)站建立 建站準備工作(一)
這篇文章主要為大家詳細介紹了MVC+EasyUI+三層新聞網(wǎng)站建立的第一篇,建站的準備工作,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
判斷WebBrowser瀏覽器網(wǎng)頁加載完成的處理方法
.net 中通過 SqlConnection 連接 sql server,我們會發(fā)現(xiàn)第一次連接時總是很耗時,但后面連接就很快,這個其實和SqlConnection 的連接池機制有關(guān),正確的理解這個連接池機制,有助于我們編寫高效的數(shù)據(jù)庫應(yīng)用程序。2013-04-04
ASP.NET數(shù)據(jù)綁定GridView控件使用技巧
這篇文章主要為大家詳細介紹了ASP.NET數(shù)據(jù)綁定GridView控件使用技巧,感興趣的小伙伴們可以參考一下2016-03-03

