ASP.NET Core 引入了自定义标签助手,可以在如下 View 中使用:
<country-select value="CountryCode" />
但是,我不明白如何在我的类中获取模型属性名称:
public class CountrySelectTagHelper : TagHelper
{
[HtmlAttributeName("value")]
public string Value { get; set; }
public override void Process(TagHelperContext context, TagHelperOutput output)
{
...
// Should return property name, which is "CountryCode" in the above example
var propertyName = ???();
base.Process(context, output);
}
}
在以前的版本中,我可以通过使用 ModelMetadata
来做到这一点:
var metadata = ModelMetadata.FromLambdaExpression(expression, html.ViewData);
var property = metadata.PropertyName; // return "CountryCode"
我如何在新的 ASP.NET
标签助手中做同样的事情?
最佳答案
为了获取属性名称,您应该在您的类中使用 ModelExpression
:
public class CountrySelectTagHelper : TagHelper
{
public ModelExpression For { get; set; }
public override void Process(TagHelperContext context, TagHelperOutput output)
{
var propertyName = For.Metadata.PropertyName;
var value = For.Model as string;
...
base.Process(context, output);
}
}
关于asp.net-mvc - 在 Tag Helper 中获取属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39200960/