1

厳密に型指定されたセッション オブジェクトを作成しようとしています。セッションにユーザーの名前と電子メールを保存したいとしましょう。私のベースコントローラーがそれを処理するので、値がセッションに存在すると常に想定できます。

現在、Razor ビューで次のように参照できます。

Email: @Session["Email"]<br/>
Name: @Session["Name"]<br/>

私がしたいのは、次のようなことです:

Email: @Session.Email<br/>
Name: @Session.Name<br/>

これを行う方法は、 HttpContext.Sessionオブジェクトを拡張することだと思います。次のようなもの:

class MySession : HttpSessionState {

    public string Email { get; set; }
    public string Name { get; set; }

}

hereで説明されているように、独自のセッション プロバイダーを作成しようとしましたが、これは HttpContext、Controller、または View で公開されません。

here で説明されているように、拡張メソッドを使用した適切な回避策があります。これにより、構文がわずかに異なり、私が望んでいたものとはまったく異なります。

Email: @Session.Email()<br/>
Name: @Session.Name()<br/>

これを行うより良い方法はありますか?

ありがとう!

4

1 に答える 1

0

TempDataを使用できます。これこれ、またはこれを見ることをお勧めします

于 2013-07-30T13:20:50.843 に答える