1、关于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://*.com/questions/560084/session-variables-in-asp-net-mvc和http://*.com/questions/6314626/get-set-httpcontext-session-methods-in-basecontroller-vs-mocking-httpcontextbase