从主视图分部视图访问Ninject对象
本文关键字:访问 Ninject 对象 视图 主视图 | 更新日期: 2023-09-27 18:07:17
我正在尝试访问由ninject在我的布局视图中创建的对象,但我不知道如何访问它们。
这里是我到目前为止所尝试的一个简短的大纲:-
由service创建并绑定:
public interface IService
{
void SomeMethod();
}
public class Service : IService
{
public void SomeMethod
{
}
}
Bind<IService>().To<Service>();
创建一个静态类并使用[Inject]
属性:
public static class MasterLayout
{
[Inject]
public static IService Service { private get; set; }
public static void CallSomeMethod();
{
Service.SomeMethod
}
}
每次我从我的主视图或部分视图调用MasterLayout.CallSomeMethod()
时,Service
字段总是空的。
这是可能的,还是我应该创建一个基本控制器,让其他控制器从它继承,我可以设置这些值在主视图和部分视图中使用?有没有更好的方法来实现这个目标?
如果与构造函数注入一起使用,Ninject工作吗?
(见http://ninject.codeplex.com/wikipage?title=Injection%20Patterns)
之类的 IUnitOfWork UnitOfWork;
public AccountController(IUnitOfWork unitOfWork)
{
this.UnitOfWork = unitOfWork;
}
您在这里检查过了吗?
绑定属性总是返回null
你说的"on every page"是指"on every controller"吗?
如果是,我认为你可以创建一个BaseController类,所有的控制器应该从它继承。我正在使用这个方法
你必须创建一个自定义控制器工厂来让Ninject创建控制器。一旦你这样做了,它就会起作用。