我的模型类有一个没有Required属性的bool属性:
public class Test
{
public bool TestBool1 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后在我的剃刀视图中我使用EditorFor(同样的事情也发生在CheckBoxFor上):
<div>
@Html.LabelFor(m => m.TestBool1)
@Html.EditorFor(m => m.TestBool1)
</div>
Run Code Online (Sandbox Code Playgroud)
这导致以下HTML:
<div>
<label for="TestBool1">TestBool1</label>
<input class="check-box" data-val="true" data-val-required="The TestBool1 field is required." id="TestBool1" name="TestBool1" type="checkbox" value="true">
<input name="TestBool1" type="hidden" value="false">
</div>
Run Code Online (Sandbox Code Playgroud)
data-val-required html属性来自哪里?
有没有办法阻止它这样做而不使用@Html.CheckBox("TestBool1", Model.TestBool1)和设置类型bool??
在 Core MVC 中,有一个新的概念作为标签助手。
我们之前可以创建自定义 html 帮助程序,以根据验证数据注释(例如 [Required])附加一些类。
作为 TagHelpers arq 相当新的领域,我找不到足够的资源来实现以下目标:
这是视图模型:
[Required]
public Gender Gender { get; set; }
Run Code Online (Sandbox Code Playgroud)
看法:
<label class="control-label col-md-3 required" asp-for="Gender"></label>
Run Code Online (Sandbox Code Playgroud)
css:
.required:after {
content: "*";
font-weight: bold;
color: red;
}
Run Code Online (Sandbox Code Playgroud)
但我不想在标签中手动添加所需的 css 类。不知何故,我应该能够扩展 LabelTagHelper 以读取模型数据注释,如果它具有 [Required] 则在标签元素中添加所需的类。
谢谢,