2012-01-25 10 views
3

MVC3アプリケーションのセッションに問題があります。あるコントローラでは、ポストリクエストを受信して​​から、コントローラにリダイレクトする前にセッションに値を追加してメソッドを取得します。MVC3がリダイレクト処理でセッションを破棄します

GETリクエストでは、POSTリクエストでセッション値が設定されていても、セッション値がnullを返すという問題があります。

[HttpPost] 
public ActionResult findPerson(PersonSearch searchDetails) 
{ 
    Session["FindPersons"] = searchDetails; 
    return RedirectToAction("findperson"); 
} 


[HttpGet] 
public ActionResult findperson() 
{ 
    PersonSearch searchDetails = (PersonSearch)Session["FindPersons"]; 

答えて

4

ソリューション:

一部ナッターは、web.configファイルでセッション状態のCookie名を命名し、認証フォームは、同じことを名前を付けます。明らかに

<sessionState timeout="20" cookieName="Spacer" /> 

<forms loginUrl="/spacer/login" name="Spacer" timeout="2200" /> 

それが持っていた効果は同じ事と呼ばれるもので、セッションとクッキーを保存しようとしていました。私は非常にこれはちょうど爆破しなかった驚いている。

あなたの助けを借りて@dknaack、私は正しい方向に私を指差していなかった場合、これをすばやく見つけたでしょう。

1

私はあなたのコードを試して、この問題では実行しないでください。だから私はASP.NETフォーラムを見ました。

ポストRedirectToActionは、私はこの問題に遭遇しましたIIS

でセッションを失いあります。アクション自体にリダイレクトするのではなく、アプリケーションプールに関連しています。私のために修正したのは、サイトがIISで実行されていたアプリケーションプールを削除して再作成することでした。今はうまく動作します。 Source

+0

ああ、それは、私はそれがIISを実行していた気づいていない可能性があります。私は今それを試してみましょう。 –

+0

@aspectそれが役に立ったら教えてください。 – dknaack

+0

これはまだnullとして渡されています。私はVisual StudioでIISを使用してデバッグしています。これは、コードの一部として従来のaspアプリケーションがあるためです。 –

関連する問題