【发布时间】:2018-08-24 23:15:45
【问题描述】:
我正在尝试创建一个表格标签助手,它可以自动解析给定模型中的列和行。
这是应该的(理论上是这样使用的):
<table for="@Model">
</table>
这应该会自动显示列名和行。
生成列名并不难,因为我正在传递模型
[HtmlTargetElement("table", Attributes = "for")]
public class DataTableTagHelper :TagHelper
{
[HtmlAttributeName("for")]
public ModelExpression For { get; set; }
public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
{
foreach (var item in For.Metadata.ElementMetadata.Properties)
{
// generate html for theader using item.Name
}
}
}
但获取模型的值并不容易。
有没有办法获取这些属性的值?
我试图避免反射,因为我认为生成 HTML 代码并不是一个好主意。
【问题讨论】:
-
你的模型是什么类型的?你能发布你的模型的类吗?
-
它应该是表通用的,所以任何实现 IEnumrable 的东西,我都会跳过模型的属性,所以你可以假设 IEnumrable
是模型,我正在循环SomeClass 的所有属性 -
让我看看我是否明白。你的
Model实现IEnumerable。对吗? -
正确,里面的类是什么
-
对于呈现的 HTML 表,是否希望列名来自
whatever属性名?
标签: razor asp.net-core