2017-12-06 22 views
0

.NET MVCでセッション変数のようなものを作成する必要があります。 ViewDataを使用しています。まずコントローラインデックスに設定します:ASP.NET MVCのセッション変数

public ActionResult Index(int id) 
    { 
     ViewData["myID"] = id; 
    } 

次に、同じコントローラの別の機能で使用する必要があります。しかし、私はそれを私の見解に送る必要があります。データをaに格納します。それからもう一度それを読んでください。 ビュー:私はIDを取得するコントローラの

<input type="hidden" id="myID" name="myID" value='@ViewData["myID"]' /> 

その他の機能:

[HttpPost, ValidateInput(false)] 
    public ActionResult Test(FormCollection form) 
    { 
     var pId = form["myID"]; 
    } 

それは動作しますが、間違ったに見えますが(私は、.NET MVCでの新たなんです)。コントローラでこのIDを一度設定してから、必要なときに読み込み/取得できる方法はありますか?

おかげ

+3

のViewDataため、この

セット用

System.Web.HttpContext.Current.Session["Id"] = 1; 

を試してみてください!=セッション – Shyju

+5

理由だけではなく 'Session'を使わないのでしょうか?これは、MVCで見つけるだけで動作します。さもなければ、あなたがやっていることはうまくいきます。ビューにデータを送るために 'ViewData'を使い、それをコントローラに返すためにフォームコントロールを使います。 –

+0

MVC – user6824563

答えて

4

は取得

var id=Convert.ToInt32(System.Web.HttpContext.Current.Session["Id"]); 
+0

パーフェクトのセッションについて何も見つかりませんでした。ありがとう!ちょうど質問...このセッションは一定の期間の後に終了するか? – user6824563

+0

はい、それは期間の後にexpiered。 このリンクを参照してください [web.configでセッションタイムアウトを設定する方法](https://stackoverflow.com/questions/1205828/how-to-set-session-timeout-in-web-config) –