【问题标题】:Generic List<T> property in ViewModelViewModel 中的通用 List<T> 属性
【发布时间】:2018-11-13 13:37:06
【问题描述】:

我希望在我的 ViewModel 中包含一个通用 List 属性,以使我能够使用任何类型的 IEnumerable 列表来填充它。

本质上是创建一个非常简单的报告结构,然后使用自定义显示模板来呈现对象的表格形式

这可能吗?

public class ReportingViewModel
{
    public List<T> Data { get; set; }
    public string Title { get; set; }
}

然后在我的自定义显示模板中使用模型

@model List<object>

或类似的。我已经在 VM 和自定义模板中使用 List&lt;T&gt;List&lt;object&gt; 进行了尝试,但无济于事。

【问题讨论】:

  • 类型参数需要在类级别

标签: c# generics model-view-controller asp.net-mvc-viewmodel


【解决方案1】:

类型参数需要在类级别

public class ReportingViewModel<T> {
    public List<T> Data { get; set; }
    public string Title { get; set; }
}

并在视图中访问

@model ReportingViewModel<MyObject>

【讨论】:

  • 感谢您的回复。这是否意味着我仍然需要为每种对象类型提供自定义模板?我试图避免这种情况,并且有一个可以接受任何对象的 Table.cshtml 模板?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-02
相关资源
最近更新 更多