我正在尝试在 MVC 3 期货程序集中使用 CookieTempDataProvider。我相信我已经使用 ninject 成功地“连接”了它。以下是我的 app_start.cs 文件中的代码:
[程序集:WebActivator.PreApplicationStartMethod(typeof(Web.AppStart), "Start")] 命名空间 Web { public static class AppStart { public static void RegisterServices(IKernel kernel) {
kernel.Bind<ITempDataProvider>().To<CookieTempDataProvider>();
}
public static void Start() {
// Create Ninject DI Kernel
// IKernel kernel = new StandardKernel();
IKernel kernel = Container;
// Register services with our Ninject DI Container
RegisterServices(kernel);
// Tell ASP.NET MVC 3 to use our Ninject DI Container
DependencyResolver.SetResolver(new NinjectServiceLocator(kernel));
}
static IKernel _container;
public static IKernel Container
{
get
{
if (_container == null)
_container = new StandardKernel();
return _container;
}
}
但是,当我访问使用 TempData 的页面时,我收到此错误,表明它仍在尝试使用 SessionTempDataProvider:
“/”应用程序中的服务器错误。SessionStateTempDataProvider 类需要启用会话状态。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.InvalidOperationException:SessionStateTempDataProvider 类需要启用会话状态。
我一定错过了什么,我无法弄清楚它是什么。非常感激任何的帮助。
非常感谢