ASP.NET MVC通用控制器的目的是什么?

Tho*_*mas -2 c# asp.net-mvc

我是asp.net mvc的新手.我听到这个词ASP.NET MVC generic controller,任何人都能轻易解释它是什么吗?我之前使用过默认控制器,但现在我希望能够可视化ASP.NET MVC通用控制器的用途.如果有人能够解释开发人员必须考虑使用ASP.NET MVC通用控制器的情况,那将非常有用.将非常感谢有关如何实现它的概念和代码.谢谢

Cod*_*ter 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

这样的实现:

public class FooController : GenericController<Foo>
{

}
Run Code Online (Sandbox Code Playgroud)

现在,当有人请求/Foo/Details/42时,entitiy从拉动_repository的Set<Foo>(),而无需编写的,在什么FooController.

通过这种方式,您可以创建一个基本的"CRUD"控制器,使您可以使用新模型的创建,读取,更新和删除操作轻松扩展应用程序.