我是asp.net mvc的新手。我有一个app类,每个请求只需要一个实例。它具有IDispose所以我需要它才能正确处理,我会在每个页面命中它。
我发现的问题是我有时需要在我的视图中调用方法。我不知道如何访问控制器中的类,查看并在每个请求结束时正确处理它。我觉得我需要用我自己的控制器类替换所有控制器作为基础。但是这只有在它首先执行视图并且我可以从视图中访问MyController中的成员时才会起作用(实际上我可以将它放入viewbag中而不是我)
这样做的正确方法是什么?
答案 0 :(得分:0)
一种解决方案是连接依赖注入框架(例如Ninject)并让它控制对象的生命周期。 Ninject有一个InRequestScope生命周期策略,它将为每个请求创建一个对象,因此后续调用获取对象将返回相同的对象,如果它在同一个请求中。
答案 1 :(得分:0)
实现依赖注入后,您可以在控制器中处理下面的依赖项或对象。
protected override void Dispose(bool disposing)
{
_requestRepository.Dispose();
base.Disposing(disposing);
}