Asp.Net 5 TagHelper Modelstate绑定

时间:2015-05-15 14:57:14

标签: c# asp.net-mvc asp.net-core-mvc tag-helpers

我正在尝试制作一个绑定到当前ModelState的自定义TagHelper,就像

一样
<input asp-for="this_part" />

我想从我的自定义TagHelper类中进行一些ModelState验证。

试图搜索Github存储库,但无法确定这种确切的行为。有人找到了办法吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

我不确定你要找的是什么,但DefaultHtmlGenerator does something similar for validation messages

您可以通过ModelState访问ViewContext(示例改编自ValidationMessageTagHelper.cs):

[TargetElement("span", Attributes = AttributeName)]
public class YourTagHelper : TagHelper
{
    private const string AttributeName = "your-for";

    [Activate]
    protected internal ViewContext ViewContext { get; set; }

    public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
    {
        var modelState = ViewContext.ViewData.ModelState;
        // Your logic here
    }
}

根据您的评论,您提到要将智能感知映射到Model属性。 ValidationMessageTagHelper.cs使用此属性执行此操作:

[HtmlAttributeName(ValidationForAttributeName)]
public ModelExpression For { get; set; }