ASP.NET Core TagHelpers中的表达式

时间:2017-07-27 06:19:16

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

在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 获得“城市”。

1 个答案:

答案 0 :(得分:0)

好的我明白了,原来的表达式保存在

ModelExpression.Name
相关问题