厳密に型指定されたセッション オブジェクトを作成しようとしています。セッションにユーザーの名前と電子メールを保存したいとしましょう。私のベースコントローラーがそれを処理するので、値がセッションに存在すると常に想定できます。
現在、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/>
これを行うより良い方法はありますか?
ありがとう!