【发布时间】:2020-07-02 18:04:06
【问题描述】:
我是 Angular 的新手(我们正在使用 Angular 10),我正在寻找类似 ASP MVC Core 的 TagHelper asp-for 和 asp-validation-for 以减少复制粘贴:
<div class="form-group">
<label asp-for="FirstName"></label>
<input asp-for="FirstName" class="form-control" />
<span asp-validation-for="FirstName"></span>
</div>
<div class="form-group">
<label asp-for="Gender"></label>
<select asp-for="Gender" class="form-control" asp-items="Html.GetEnumSelectList<Gender>()"></select>
<span asp-validation-for="Gender"></span>
</div>
<div class="form-group">
<label asp-for="DateOfBirth"></label>
<input asp-for="DateOfBirth" class="form-control" />
<span asp-validation-for="DateOfBirth"></span>
</div>
结果是:
-
<label>具有正确的for属性。 -
<input>,<select>, ... 有正确的id,name属性和正确的type,验证属性由模型驱动([Required],[StringLength(20)],[EmailAddress], . ..) - 验证
<span>有默认消息或来自[Required(ErrorMessage ="Your first name is required")] - 所有标签(尤其是枚举值)都由模型驱动 (
[Display(Name = "Intersex")])
<div class="form-group">
<label for="FirstName">Your first name</label>
<input class="form-control input-validation-error" type="text" data-val="true"
data-val-required="Your first name is required" id="FirstName" name="FirstName" value="Marcel"
aria-describedby="FirstName-error" aria-invalid="true">
<span class="text-danger field-validation-error" data-valmsg-for="FirstName" data-valmsg-replace="true"><span
id="FirstName-error" class="">Your first name is required</span></span>
</div>
<div class="form-group">
<label for="Gender">Your gender</label>
<select class="form-control valid" data-val="true" data-val-required="The Your gender field is required."
id="Gender" name="Gender" aria-describedby="Gender-error" aria-invalid="false">
<option selected="selected" value="0">Male</option>
<option value="1">Female</option>
<option value="2">Intersex</option>
</select>
<span class="text-danger field-validation-valid" data-valmsg-for="Gender" data-valmsg-replace="true"></span>
</div>
<div class="form-group">
<label for="DateOfBirth">Your are born at</label>
<input class="form-control valid" type="date" data-val="true"
data-val-required="The Your are born at field is required." id="DateOfBirth" name="DateOfBirth"
value="1992-02-09" aria-describedby="DateOfBirth-error">
<span class="text-danger field-validation-valid" data-valmsg-for="DateOfBirth"
data-valmsg-replace="true"></span>
</div>
什么是最好的替代品?指令?
【问题讨论】:
标签: angular asp.net-core