【发布时间】:2017-07-27 06:19:16
【问题描述】:
在 TagHelper 中,我们通常有一个名为 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 获得“城市”。
【问题讨论】:
标签: c# asp.net-core asp.net-core-tag-helpers