.NET Core 6:如何通过标签助手为Validation Summary添加额外属性?
能否通过标签助手为Validation Summary添加"data-valmsg-for"属性?
当然可以实现,但你提供的示例代码存在嵌套类定义错误——MyValidationTagHelper不应该嵌套在ValidationSummaryTagHelper内部,而且外层类没有实现Process方法,无法生效。
下面是修正后的可运行代码:
[HtmlTargetElement("div", Attributes = "asp-validation-summary")] public class ValidationSummaryTagHelper : TagHelper { // 可通过视图传参动态指定关联字段,默认值设为"DOB" public string TargetField { get; set; } = "DOB"; public override void Process(TagHelperContext context, TagHelperOutput output) { // 为Validation Summary的div添加data-valmsg-for属性 output.Attributes.Add("data-valmsg-for", TargetField); // 保留原生Validation Summary的默认逻辑 base.Process(context, output); } }
代码说明:
[HtmlTargetElement]特性明确该标签助手作用于带有asp-validation-summary属性的<div>元素TargetField属性让你能在视图中灵活指定要关联的字段名,不用硬编码死值Process方法中通过output.Attributes.Add注入目标属性,同时调用base.Process确保原生验证摘要的功能不受影响
视图中使用示例:
如果要关联其他字段(比如Email),直接在标签上指定target-field即可:
<div asp-validation-summary="All" target-field="Email"></div>
内容的提问来源于stack exchange,提问作者Joe Black
相关产品推荐
相关产品推荐

