2011-04-12 19 views
0

MVC 3先物アセンブリでCookieTempDataProviderを使用しようとしています。私はそれが正常にninjectを使用して "有線"と思う。MVC 3 CookieTempDataProviderとNinject IOC

[アセンブリ:WebActivator.PreApplicationStartMethod(typeof演算(Web.AppStart)、 "スタート")] 名前空間のWeb { のpublic staticクラスAPPSTART { 公共の静的な無効RegisterServices(以下は私のapp_start.csファイルからコードがありますiKernelカーネルは){

 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クラスでは、セッション状態を有効にする必要があります。

私は何かを逃しているに違いありません、私はそれが何であるか把握できません。どんな助けでも大歓迎です。

多くのありがとう

答えて

0

私はこれをBaseControllerアプローチでしか使用できませんでした。コントローラの作成プロセスは、NinjectにITempDataProviderを要求しません。

public class BaseController : Controller 
{ 
    protected override ITempDataProvider CreateTempDataProvider() 
    { 
     return new CookieTempDataProvider(HttpContext); 
    } 
} 
0
  1. 次に、あなたはこのようにそれを使用することができ、コントローラクラスに

    public static void SetMessage(this Controller controller, String message) 
    { 
        controller.TempData["Messag"] = message; 
    } 
    
  2. を拡張:

    public ActionResult Save() 
    { 
        //Validation... 
    
        Save(Foo); 
        this.SetMessage("Item saved successfully"); 
        return Redirect("/Site"); 
    } 
    
  3. ありません数3 :)

関連する問題