3

我有一个通用的视图模型类 foo

public abstract class Base<T>

并且它的子类型在像这样从它继承时设置类

public class Child : Base<Foo>

我想在视图中使用它们作为模型

@model Base<T>

但我听说这是不可能的。我见过有人建议用 dynamic 代替 T,但除非我也用 dynamic 替换 Foo,否则这不起作用。有没有办法设计这样的视图模型?我想我可以在 viewbag 中传递 Child 对象而不是模型,但如果可能的话,我宁愿不这样做。编辑:(那个viewbag的东西现在我想起来实际上不会起作用,因为我需要能够将它转换为一个Base才能将它用作一个,这基本上就是我现在遇到的问题)

4

1 回答 1

3

您不能在视图中写入,@model Base<T>因为它不是具体的类型。无法使用泛型类型键入视图。但是你可以写

@model Base<Foo>

或者

@model Base<dynamic>

如果您显示更多关于Base<T>i 中的哪些属性,可以给您更具体的建议。

于 2012-10-26T12:24:55.510 回答