关于mvc中的session在controller中传递

 


   在用mvc开发新项目的时候,不久就遇到一个头大的问题,session在controller中传递居然出现空值,但明明一开始就赋值了,通过度娘查找,发现有好多朋友遇到同样的问题,但是没有说明详细的解决方法,最后通过谷歌查找国外网站,找到了详细的解决方法,分享如下

   1. 暂时不明白mvc中为什么传递session会出现空值,我们引用session时默认引用的是System.Web.Mvc.Controll.session,可能这个session不能传递,所以解决方法就是详细定义session,我们可以定义System.Web.HttpContext.Current.Session可以解决这个问题,我用的就是这个,比较方便

2.模仿HttpContextBase  ,说实在,这个方法不是很了解,也没仔细深究

3扩展HttpContextBase的方法

public static class SessionExtensions {     public static T GetDataFromSession<T>(this HttpSessionStateBase session, string key)     {          return (T)session[key];     }      public static void SetDataInSession<T>(this HttpSessionStateBase session, string key, object value)     {          session[key] = value;     } }

 

以上方法来自http://stackoverflow.com/questions/560084/session-variables-in-asp-net-mvchttp://stackoverflow.com/questions/6314626/get-set-httpcontext-session-methods-in-basecontroller-vs-mocking-httpcontextbase

 

ps:国外的程序员是想着用什么样的方法能更好的解决这个问题,而我是想怎么用最简单的方法解决问题,不知道这算不算是我与别人的差距

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值