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)
这在任何情况下都不是很干净.任何帮助,将不胜感激.
各行之间如何:
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)