MVC抽象基本控制器覆盖模型绑定的参数类型

Chr*_*ken 2 c# oop asp.net-mvc model-binding

为简单起见,假设我有以下抽象基础控制器类:

public abstract class RESTController : Controller
{      
    public abstract JsonResult List();
    public abstract JsonResult Get(Guid id);
    public abstract JsonResult Create(object obj);
    public abstract JsonResult Update(object obj);
    public abstract JsonResult Delete(Guid Id);
}
Run Code Online (Sandbox Code Playgroud)

对于Create&Update方法,我不仅要覆盖Method,还要覆盖参数的类型.

通常我会像这样使用泛型:

public abstract JsonResult Create<T>(T obj);
Run Code Online (Sandbox Code Playgroud)

但是,这是一个MVC操作,并且无法指定类型参数.

我有什么选择?如果我保留它,(object obj)MVC模型绑定器正常工作?

var model = obj as MyViewModel;
Run Code Online (Sandbox Code Playgroud)

这在任何情况下都不是很干净.任何帮助,将不胜感激.

Dar*_*rov 9

各行之间如何:

public abstract class RESTController<T> : Controller
{      
    public abstract JsonResult List();
    public abstract JsonResult Get(Guid id);
    public abstract JsonResult Create(T obj);
    public abstract JsonResult Update(T obj);
    public abstract JsonResult Delete(Guid Id);
}
Run Code Online (Sandbox Code Playgroud)

当覆盖时:

public FooController: RESTController<Foo>
{
    ...
    public override JsonResult Create(Foo obj)
    {
        throw new NotImplementedException();
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)