gpt4 book ai didi

c# - 如何在不同型号的 Controller 之间共享代码?

转载 作者:行者123 更新时间:2023-11-30 18:08:36 25 4
gpt4 key购买 nike

如何在不同型号的 Controller 之间共享代码?

在“ super ” Controller 操作中,我希望能够找出调用了哪个 Controller (路由),并使用该路由名称加载相应的模型,并使用该模型查询数据库以传递给 View .

我可以在 Ruby on Rails 中轻松做到这一点,MVC 是否允许这样的事情?

最佳答案

你可以使用泛型:

public abstract class GenericRepositoryController<TModel> : Controller
{
private readonly IRepository<TModel> _repository;

protected GenericRepositoryController(IRepository<TModel> repository)
{
_repository = repository;
}

public ActionResult Index()
{
var model = _repository.GetAll();
return View(model);
}
}

public class EmployeeController : GenericRepositoryController<Employee>
{
public EmployeeController(IRepository<Employee> repository) : base(repository)
{
}
}

public class CustomerController : GenericRepositoryController<Customer>
{
public CustomerController(IRepository<Customer> repository) : base(repository)
{
}
}

关于c# - 如何在不同型号的 Controller 之间共享代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3097463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com