【问题标题】:Expression in ASP.NET Core TagHelpersASP.NET Core TagHelpers 中的表达式
【发布时间】: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


    【解决方案1】:

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

    ModelExpression.Name
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-02
      • 1970-01-01
      • 1970-01-01
      • 2022-06-30
      • 1970-01-01
      相关资源
      最近更新 更多