在TagHelpers中,我们通常有一个名为 asp-for 的属性,用于将TagHelper连接到Model属性。
我创建了一个自定义TagHelper,并添加了一个像asp-for:
这样的属性 [HtmlTargetElement("myinput", TagStructure = TagStructure.WithoutEndTag)]
public class MyInputTagHelper : TagHelper {
public ModelExpression Field { get; set; }
}
通常,如果绑定模型是带有子类的复杂类型,并且我需要该属性的完整路径,我可以通过评估 System.Linq.Expressions.Expression 来获取完整的访问路径。我怎么能用ModelExpression实现这个?
我有一个模特:
public class PersonVM
{
public Person Person { get; set; }
}
和.cshtml:
@model PersonVM
<myinput field="Person.PersonAddress.City"/>
在TagHelper MyInputTagHelper 中,我需要完整的请求路径。在这个例子中,它将是“Person.PersonAddress.City”。我只能通过 Field.Metadata.PropertyName 获得“城市”。
答案 0 :(得分:0)
好的我明白了,原来的表达式保存在
中ModelExpression.Name