代码:首先定义一个sesion
public void GetSessionValue(string WC_id) { Session["WC_id"] = Request["WC_id"].ToString(); }
值:
编辑获取:
public ActionResult EditCustomer() { string etid = Session["WC_id"].ToString(); ........... }
结果是未将对象引用到实例?
结果是我定义了一个蛋疼的 public static string wc_id; 全局静态变量 来保存 。
呵呵 一个人没有问题 要是多个人 那不是数据乱了 难道用线程?能那么好控制吗
在网上看了那么多 没有找到 难道mvc就做一个人的使用的web 点击就不会打乱wc_id;
小弟不才 我就不明白这样的问题都没有解决 mvc怎么做大型网站 怎么来处理高并发 ???
我也试着把Session["WC_id"] 改成 ViewBag结果还是未将对象引用使用 viewdata也是
谢谢大家的回答
试试下面的代码:
public void GetSessionValue(string WC_id) { System.Web.HttpContext.Current.Session["WC_id"] = Request["WC_id"].ToString(); } public ActionResult EditCustomer() { string etid = System.Web.HttpContext.Current.Session["WC_id"].ToString(); ........... }
恩 我试试
@s_p: 谢了 可以了
目测99%的可能性出现在你的方法实现上,应该不存在这个bug
你确认设置Session跟Action处理是一个HttpContext么?
把你全部的代码段放出来看看
纠正一下,不是99%,而是100%。
HttpContext不是同一个2次请求
@s_p: HttpContext不是同一个
是2次不同的请求
@s_p: 都不是一个 HttpContext,当然抓不到了,Session是依附于 HttpContext下的
强烈建议你返回去好好看看基础,ASP.NET的运行原理跟实现
@Bce: 恩 如果说业务要实现呢 我点击2次不同的操作 第一个是保存值 第2个是读取 难道你很客户说这是2次不同的HttpContext 的 取不到 你说把它赋值到页面的hidden里面读取 ....我很无语了 你又说这个是设计方案有问题。。
@s_p: 你还是先看看原理吧,楼下园主直接给你了答案,参考一下吧。
@Bce: 呵呵 知道了
@s_p: 谢 了 朋友 解决了
你可以看一下你的 Session.Mode 的值是什么。
另外也可以看一下 Session.Keys 里面到底有没有你的 WC_id.
其实个人觉得在MVC中完全可以摒弃session这样子的对象。
我觉得不对,比如这样一个环境:你在列表中通过检索,得到了符合条件的数据列,然后进入编辑页面对某一列数据进行编辑,要求在编辑完成后重新返回到经过检索的数据列,检索条件需要保持。如果不用session,处理起来就太麻烦了。
@Bce: 完全可以使用bind model。