セッション変数の定義についてはかなり明確ですが、セッションには実際的な問題があります。ビューデータを使用しているビューがあり、このビューデータにはセッション変数の値が割り当てられています。このセッション変数をコントローラーに配置しました。私が持っているビューでは
ViewData["MyView"]
コントローラ内
if(Session["MySession")!=null)
{
ViewData["MyView"]=Session["MySession");
}
上記コントローラは各ページ共通のコントローラです。つまり、他のすべてのページから、コントロールは上記のコントローラーにリダイレクトされます。だから、これに続いて、私は他の3つのコントローラーを持っています
コントローラー1 コントローラー2 コントローラー3
ページ 1 から RunReport をクリックすると、コントロールは Controller1 に移動し、セッション変数を設定します。
like Session["MySession"]=1;
このセッションを設定した後、コントローラーはViewData [MyView]を設定するために共通コントローラーに移動し、このビューデータに値を追加すると、毎回異なるロジックがあります。
同様に、 Page Two から Runreport をクリックすると、コントロールは Controller2 に移動し、セッション変数を設定します
like Session["MySession"]=1;
このセッションを設定した後、コントローラーはViewData [MyView]を設定するために共通コントローラーに移動し、このビューデータに値を追加すると、毎回異なるロジックがあります。つまり、ViewData は毎回異なる値を持つということです。
同様に、ページ 3 からクリックすると、コントロールはすべて同じように動作します。
今のところすべてが機能しています。しかし、私の問題は、異なるコントローラーごとに同じセッション変数を使用していることです。User1 が page1 を開いて runreport page をクリックするとします。もちろん、このセッション変数には値があり、このコントロールの後、共通コントローラーに移動し、ビュー データに値を設定します。同時に、別の使用者が page2 を開いて runreport をクリックすると、もう一度クリックすると、このプロセスが実行されるか、前のセッションにすでに値が含まれています runreport をクリックしてもしなくても。実際、私は完全に混乱しています。私を助けてください。実践的なレベルでセッションを深く理解するための技術的なポイントをいくつか教えてください。私のポイントを明確にしてください。どうもありがとうございました。