標籤:cti microsoft box ros round password 控制器 提交 ken
原文地址:https://docs.microsoft.com/zh-cn/aspnet/core/mvc/views/working-with-forms#the-input-tag-helper
asp.net core裡面,TagHelper是一項非常人性化的封裝,使得表單提交都變得很簡潔。廢話不多說,通過小例子對比獲得優點。
Form路由標籤
特點:
1、為MVC控制器action產生Html中action特性或者定義路由,常使用的標籤有asp-controller,
asp-action,
asp-route
功能:
1、產生html路由功能代碼。
2、產生請求驗證令牌,阻止外部惡意請求,與之前[ValidateAntiForgeryToken]特性效果一樣。
3、產生可選的兩種請求,Html.BeginForm
and Html.BeginRouteForm。
產生Html.BeginForm請求:
<form asp-controller="Demo" asp-action="Register" method="post"> <!-- Input and Submit elements --></form>
等同如下效果的代碼:
<form method="post" action="/Demo/Register"> <!-- Input and Submit elements --> <input name="__RequestVerificationToken" type="hidden" value="<removed for brevity>" /></form>
產生Html.BeginRouteForm請求:
<form asp-route="register" method="post"> <!-- Input and Submit elements --></form>
等同如下效果
<form asp-controller="Account" asp-action="Login" asp-route-returnurl="@ViewData["ReturnUrl"]" method="post" class="form-horizontal" role="form">
Input標籤
通常使用的標籤有asp-for
特點:
1、asp-for類似於mvc下面的model運算式一樣的一樣,等價於m => m.Property1.Property2
功能:
1、為Input元素添加ID和Name特性,並且其值為,產生asp-for特性值。
2、asp-for對應的實體欄位添加後台data annotation特性
3、如果特性重複,並不會產生重複的特性
4、如果asp-for對應的實體欄位有驗證特性,則會產生對應的html5驗證特性
常用實體欄位及其特性產生html類型列舉
.NET type |
Input Type |
Bool |
type=”checkbox” |
String |
type=”text” |
DateTime |
type=”datetime” |
Byte |
type=”number” |
Int |
type=”number” |
Single, Double |
type=”number” |
Attribute |
Input Type |
[EmailAddress] |
type=”email” |
[Url] |
type=”url” |
[HiddenInput] |
type=”hidden” |
[Phone] |
type=”tel” |
[DataType(DataType.Password)] |
type=”password” |
[DataType(DataType.Date)] |
type=”date” |
[DataType(DataType.Time)] |
type=”time” |
asp.net core 中TagHelper使用