ASP.NET 核心 TagHelpers 中的表达式
Expression in ASP.NET Core TagHelpers
在 TagHelpers 中,我们通常有一个名为 asp-for 的 属性,用于将 TagHelper 连接到模型 属性。
我创建了一个自定义 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"。我所能得到的只是 "City" 通过 Field.Metadata.PropertyName.
好的我知道了,原表情保存在
ModelExpression.Name
在 TagHelpers 中,我们通常有一个名为 asp-for 的 属性,用于将 TagHelper 连接到模型 属性。
我创建了一个自定义 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"。我所能得到的只是 "City" 通过 Field.Metadata.PropertyName.
好的我知道了,原表情保存在
ModelExpression.Name