C# 共享同一模型的复杂.Net核心标记帮助程序(独立于@model)

C# 共享同一模型的复杂.Net核心标记帮助程序(独立于@model),c#,asp.net-core,asp.net-core-tag-helpers,C#,Asp.net Core,Asp.net Core Tag Helpers,使用.Net Framework的帮助器,我可以做如下工作: @CustomHelper.Table(List<MyModel>).Column(x => x.prop1).Column(x => x.prop1.mySubProp); <my-helper model="@Model.List"> //Which is a List<MyType> <my-sub-helper property="myProp1"><\m

使用.Net Framework的帮助器,我可以做如下工作:

@CustomHelper.Table(List<MyModel>).Column(x => x.prop1).Column(x => x.prop1.mySubProp);
<my-helper model="@Model.List"> //Which is a List<MyType>
  <my-sub-helper property="myProp1"><\my-sub-helper> //Which are properties of MyType.
  <my-sub-helper property="myProp1.mySubProp"><\my-sub-helper>
<\my-helper>
@CustomHelper.Table(List).Column(x=>x.prop1).Column(x=>x.prop1.mySubProp);
在这里,我可以使用lambda表达式访问“MyModel”的属性,以便基于这些属性生成复杂的html结构或表

有没有可能在.NETCore中做类似的事情,这样我就可以使用这种结构

<my-helper model="@List<MyType>">
  <my-sub-helper property="@(x => x.myProp1)"><\my-sub-helper>
  <my-sub-helper property="@(x => x.myProp1.mySubProp)"><\my-sub-helper>
<\my-helper>

因为我没有访问泛型类型标记帮助程序的权限,所以我没有尝试过这样做。现在我得到的是这样的东西:

@CustomHelper.Table(List<MyModel>).Column(x => x.prop1).Column(x => x.prop1.mySubProp);
<my-helper model="@Model.List"> //Which is a List<MyType>
  <my-sub-helper property="myProp1"><\my-sub-helper> //Which are properties of MyType.
  <my-sub-helper property="myProp1.mySubProp"><\my-sub-helper>
<\my-helper>
//哪个是列表
//这些是MyType的属性。
在这里,我使用字符串来捕获“MyType”的属性名,但如果使用此方法,显然我无法使用intellisense

我还尝试使用模型表达式捕获属性名称,因此前端的代码如下所示

<my-helper model="@List<MyType>">
  <my-sub-helper property="@Model.List.firstOrDefault().myProp1"><\my-sub-helper>
  <my-sub-helper property="@Model.List.firstOrDefault().myProp1.mySubProp"><\my-sub-helper>
<\my-helper>

但是我没有捕获到“mySubProp”的整个路径,它将是一个类似于“myProp1.mySubProp”的字符串

关于如何干净地实现这类东西有什么想法吗