Asp.net mvc ASP.NET MVC 1-在ViewModel中调用会话对象
如何在ViewModel中调用会话?“会话[…]”或“HttpContext.Session[…]”的引用在此上下文中不存在一般的想法是您“不应该” 控制器应提供视图所需的所有信息 但是,将会话(或会话的一部分)与ViewModel一起传递可能是值得的 我处理这个问题的方式是,我为所有能够访问控制器的视图模型都提供了一个基类。然后,他们可以直接从会话查询控制器中的特定对象,而无需将会话直接公开给视图 BaseView.csAsp.net mvc ASP.NET MVC 1-在ViewModel中调用会话对象,asp.net-mvc,Asp.net Mvc,如何在ViewModel中调用会话?“会话[…]”或“HttpContext.Session[…]”的引用在此上下文中不存在一般的想法是您“不应该” 控制器应提供视图所需的所有信息 但是,将会话(或会话的一部分)与ViewModel一起传递可能是值得的 我处理这个问题的方式是,我为所有能够访问控制器的视图模型都提供了一个基类。然后,他们可以直接从会话查询控制器中的特定对象,而无需将会话直接公开给视图 BaseView.cs public abstract class BaseView<TM
public abstract class BaseView<TModel> : SparkView<TModel> where TModel : ControllerResponse
{
// Stuff common to all views.
}
试一试
此上下文中不存在对“HttpContext…”的引用抱歉,使用System.Web调用“System.Web”/“using System.Web;”我可以获取会话或者忘记添加完全限定的名称。很高兴听到您让它工作了。+1作为答案,在我的例子中,因为这是一个对应于“ascx”的ViewModel,更简单(不正确),调用System.Web.HttpContext.Current.Session。非常感谢。
public class ControllerResponse
{
private BaseController controller = null;
private ControllerResponse() { }
public ControllerResponse(BaseController controller)
{
this.controller = controller;
}
// Here, you would place all of the methods that the BaseView should have access to.
}
HttpContext.Current.Session[..]