我是asp.net mvc的新手。我听到ASP.NET MVC generic controller
这个词,任何人都能轻易解释它是什么吗?我之前使用过默认控制器,但现在我希望能够可视化ASP.NET MVC通用控制器的用途。如果有人能够解释开发人员必须考虑使用ASP.NET MVC通用控制器的情况,那将非常有用。将非常感谢有关如何实现它的概念和代码。感谢
答案 0 :(得分:9)
您通常会创建一个泛型类来抽象出可以对一系列类型执行的操作,例如包含ID的Entity Framework模型。在这种情况下,您可以将所有重复的代码移动到基类中。
对于MVC控制器,通用基本控制器可能如下所示:
public abstract class GenericController<T>
where T : class
{
public virtual ActionResult Details(int id)
{
var model = _repository.Set<T>().Find(id);
return View(model);
}
}
这样的实现:
public class FooController : GenericController<Foo>
{
}
现在当有人请求/Foo/Details/42
时,权限会从_repository
的{{1}}中提取,而无需在Set<Foo>()
中为其写任何内容。
通过这种方式,您可以创建一个基本的“CRUD”控制器,通过新模型的创建,读取,更新和删除操作,您可以轻松扩展应用程序。