ASP.Net MVC 4中的强类型会话

时间:2013-07-30 12:48:16

标签: session asp.net-mvc-4 razor-2

我正在尝试创建一个强类型的会话对象。假设我想在会话中存储用户的姓名和电子邮件。我的基本控制器会处理这个问题,所以我总是可以假设会话中存在这些值。

目前,我可以在我的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/>

有更好的方法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用 TempData 。我建议您查看thisthisthis

相关问题