我真的想这样做......
public class BaseController<T> where T : IPageModel, Controller
但是视觉工作室并不喜欢它。 Controller是MVC的一个类。我的页面模型确保了一些模型的东西。我的语法错了吗?
答案 0 :(得分:8)
正确的语法是:
public class BaseController<T>: Controller where T : IPageModel
where
关键字后面的所有内容都被视为通用约束声明。在您的情况下,您希望您的类派生自Controller
,因此您首先要指明这一点,并在结束时指定通用约束。
现在你的实际控制器可以从这个基本控制器派生出来:
public class FooController: BaseController<Foo>
{
...
}
显然Foo
必须实现由通用约束强制执行的IPageModel
:
public class Foo: IPageModel
{
...
}