我正在尝试制作一个绑定到当前 ModelState 的自定义 TagHelper,就像
<input asp-for="this_part" />
我想从我的自定义 TagHelper 类中进行一些 ModelState 验证。
试图搜索Github存储库,但无法查明这种确切的行为。任何人都找到了一种方法来做到这一点?
谢谢!
我正在尝试制作一个绑定到当前 ModelState 的自定义 TagHelper,就像
<input asp-for="this_part" />
我想从我的自定义 TagHelper 类中进行一些 ModelState 验证。
试图搜索Github存储库,但无法查明这种确切的行为。任何人都找到了一种方法来做到这一点?
谢谢!
我不确定您到底在寻找什么,但DefaultHtmlGenerator 对验证消息做了类似的事情。
您可以ModelState
通过ViewContext
(改编自ValidationMessageTagHelper.cs的示例)访问:
[TargetElement("span", Attributes = AttributeName)]
public class YourTagHelper : TagHelper
{
private const string AttributeName = "your-for";
[ViewContext]
[HtmlAttributeNotBound]
protected internal ViewContext ViewContext { get; set; }
public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
{
var modelState = ViewContext.ViewData.ModelState;
// Your logic here
}
}
从您的评论中,您提到您需要智能感知来映射到模型属性。ValidationMessageTagHelper.cs使用此属性执行此操作:
[HtmlAttributeName(ValidationForAttributeName)]
public ModelExpression For { get; set; }