想使用通用基类作为asp.net MVC视图的模型

时间:2012-10-26 00:49:40

标签: asp.net-mvc

我有一个viewmodel类foo,它是一个通用的

public abstract class Base<T>

及其子类型在从类继承它时

设置类
public class Child : Base<Foo>

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

这样的模型
@model Base<T>

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

1 个答案:

答案 0 :(得分:3)

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

@model Base<Foo>

@model Base<dynamic>

如果您更多地了解Base<T>中的哪些属性,我可以为您提供更具体的建议。