我有一个viewmodel类foo,它是一个通用的
public abstract class Base<T>
及其子类型在从类继承它时
设置类public class Child : Base<Foo>
我想在视图中使用它们作为像
这样的模型@model Base<T>
但我听说这是不可能的。我见过人们建议用动态代替T,但除非我用动态替换Foo,否则这不起作用。有没有办法像这样设计视图模型?我想我可以在viewbag中传递Child对象而不是模型,但是如果可能的话我宁愿不这样做。编辑:(那个viewbag的东西现在实际上不会起作用了,因为我需要能够将它转换为Base来使用它作为一个,这基本上就是我现在遇到的问题)
答案 0 :(得分:3)
你不能在View @model Base<T>
中写,因为它不是具体类型。无法使用泛型类型键入视图。但你可以写
@model Base<Foo>
或
@model Base<dynamic>
如果您更多地了解Base<T>
中的哪些属性,我可以为您提供更具体的建议。