首页 新闻 会员 周边

mvc的session bug的问题 微软的mvc难道没有解决值跨ActionResult的方案吗?没有解决并发的方案

-2
悬赏园豆:30 [已解决问题] 解决于 2012-08-09 14:04

代码:首先定义一个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也是

问题补充:

谢谢大家的回答

s_p的主页 s_p | 初学一级 | 园豆:138
提问于:2012-08-09 11:05
< >
分享
最佳答案
0

试试下面的代码:

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();
    ...........
}
收获园豆:15
dudu | 高人七级 |园豆:30994 | 2012-08-09 11:52

恩 我试试

s_p | 园豆:138 (初学一级) | 2012-08-09 12:33

@s_p: 谢了 可以了

s_p | 园豆:138 (初学一级) | 2012-08-09 14:01
其他回答(3)
0

目测99%的可能性出现在你的方法实现上,应该不存在这个bug

你确认设置Session跟Action处理是一个HttpContext么?

把你全部的代码段放出来看看

收获园豆:10
Bce | 园豆:381 (菜鸟二级) | 2012-08-09 11:26

纠正一下,不是99%,而是100%。

支持(0) 反对(0) 水牛刀刀 | 园豆:6350 (大侠五级) | 2012-08-09 11:29

HttpContext不是同一个2次请求

支持(0) 反对(0) s_p | 园豆:138 (初学一级) | 2012-08-09 11:30

@s_p: HttpContext不是同一个  

 是2次不同的请求

支持(0) 反对(0) s_p | 园豆:138 (初学一级) | 2012-08-09 11:31

@s_p: 都不是一个 HttpContext,当然抓不到了,Session是依附于 HttpContext下的

强烈建议你返回去好好看看基础,ASP.NET的运行原理跟实现

支持(0) 反对(0) Bce | 园豆:381 (菜鸟二级) | 2012-08-09 11:33

@Bce: 恩 如果说业务要实现呢 我点击2次不同的操作 第一个是保存值  第2个是读取 难道你很客户说这是2次不同的HttpContext 的 取不到  你说把它赋值到页面的hidden里面读取 ....我很无语了 你又说这个是设计方案有问题。。

支持(0) 反对(0) s_p | 园豆:138 (初学一级) | 2012-08-09 11:40

@s_p: 你还是先看看原理吧,楼下园主直接给你了答案,参考一下吧。

支持(0) 反对(0) Bce | 园豆:381 (菜鸟二级) | 2012-08-09 11:53

@Bce: 呵呵 知道了

支持(0) 反对(0) s_p | 园豆:138 (初学一级) | 2012-08-09 12:34

@s_p: 谢 了 朋友 解决了

支持(0) 反对(0) s_p | 园豆:138 (初学一级) | 2012-08-09 14:02
0

你可以看一下你的 Session.Mode 的值是什么。

另外也可以看一下 Session.Keys 里面到底有没有你的 WC_id.

收获园豆:5
Launcher | 园豆:45045 (高人七级) | 2012-08-09 13:08
0

其实个人觉得在MVC中完全可以摒弃session这样子的对象。

chenping2008 | 园豆:9836 (大侠五级) | 2012-08-09 13:45

我觉得不对,比如这样一个环境:你在列表中通过检索,得到了符合条件的数据列,然后进入编辑页面对某一列数据进行编辑,要求在编辑完成后重新返回到经过检索的数据列,检索条件需要保持。如果不用session,处理起来就太麻烦了。

支持(0) 反对(0) Bce | 园豆:381 (菜鸟二级) | 2012-08-09 16:29

@Bce: 完全可以使用bind model。

支持(0) 反对(0) chenping2008 | 园豆:9836 (大侠五级) | 2012-08-10 16:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册