我的应用程序有很多支持表,需要管理UI界面才能维护 - 例如:国家,州,城市等。我不确定在一个AdminController中为每个人添加CRUD操作是否有意义或为每个支持表创建一个Controller。
答案 0 :(得分:0)
如果您的代码具有高度重复性并且您已经获得了适当的数据层抽象(例如,存储库模式,依赖注入),那么您可以创建一个通用的管理控制器并对其进行子类型化。
public abstract class AdminController<T> : Controller
{
protected IRepository<T> _Repository;
protected AdminController(IRepository<T> repo)
{
_Repository = repo;
}
public ViewResult List()
{
var all = _Repository.GetAll(); // todo paging, sorting, etc -- I'd use a service layer to do this
return View(all);
}
public ViewResult Edit(int id)
{
var item = _Repository.GetById(id);
return View(item);
}
// and so on...
}
然后是实际的控制器:
public class PostController : AdminController<Post>
{
public PostController(IRepository<Post> repo) : base(repo) {}
}
当然,您仍需要制作所有观点。