我编写了一个名为CanEditTagHelper的TagHelper,它根据从视图传入的值禁用/启用输入控件。
TagHelper看起来像这样:
awaitThreads()
它在视图中使用就像......
[HtmlTargetElement("input", Attributes = CanEditAttribute)]
public class CanEditTagHelper : TagHelper
{
private const string CanEditAttribute = "asp-can-edit";
[HtmlAttributeName(CanEditAttribute)]
public bool CanEdit { set; get; }
public CanEditTagHelper(IHtmlGenerator generator)
{
}
public override void Process(TagHelperContext context, TagHelperOutput output)
{
if (!CanEdit)
{
output.Attributes["disabled"] = "disabled";
}
base.Process(context, output);
}
}
这适用于常规输入,但似乎不适用于CheckBoxes。禁用的属性永远不会添加到复选框输入中。
<input asp-for="UserName" asp-can-edit='Model.CanEditMember("UserName")' />
有谁知道为什么这个标记助手没有为复选框添加禁用属性?