MVC模型状态

gno*_*ome 4 asp.net-mvc

问候在我的所有控制器上,我回收了包装模型和访问服务层的相同代码 - 我很累心将它复制/粘贴到每个控制器中:

private IProjectService _service;
public New()
{
_service = new ProjectService(new ModelValidation(this.ModelState));
}
public New(IProjectService service)
{
_service = service;
}
Run Code Online (Sandbox Code Playgroud)

在某些地方我可以把它放在我所有的控制器访问它的地方吗?

Dav*_*d M 5

您可以放入所有其他控制器继承自的基本控制器类:

public class BaseController : Controller
{
    protected IProjectService Service { get; private set; }
    public New()
    {
        Service = new ProjectService(new ModelValidation(this.ModelState));
    }
    public New(IProjectService service)
    {
        Service = service;
    }
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以阅读依赖注入,并查看使用IOC容器注入这些依赖项.