首页 新闻 赞助 找找看

MVC定义一个全局的变量或者session跨ActionResult无效,路过的大侠看看吧!急

1
悬赏园豆:20 [已解决问题] 解决于 2012-08-02 12:32
        public ActionResult EditCustomer()
        {
            int etid = (int)Session["WC_id"];  
            。。。。。     
        }

        public bool Delete()
        {
            string deleteid = Session["WC_id"].ToString();
            。。。。。
        }

        public void GetSessionValue(string WC_id)
        {      
            Session["WC_id"] = int.Parse(Request["WC_id"]);
        }

我在GetSessionValue方法第一全局的变量 我用session 或者viewbag 或者 viewdata 或者TempData 保存 其他的里面都取不到?

注意 我的int.Parse(Request["WC_id"]);值是有的

要怎么解决呢?

KyrieYang的主页 KyrieYang | 菜鸟二级 | 园豆:205
提问于:2012-07-31 17:27
< >
分享
最佳答案
0

定义一个全局 静态的变量  或者hidden input 来存viewBag里的id值 就和gunsmoke说的一样

收获园豆:12
s_p | 初学一级 |园豆:138 | 2012-08-02 12:31
其他回答(3)
0

描述不太清晰,看得不大明白。

az235 | 园豆:8483 (大侠五级) | 2012-07-31 17:31

就是在GetSessionValue定义个session 其他地方的ActionResult  来获取 (类似全局变量)

支持(0) 反对(0) KyrieYang | 园豆:205 (菜鸟二级) | 2012-07-31 18:55
0

mvc 里不是这么写的么: public ActionResult Delete(string id); 为啥要存入 session 呢?

检查下,是否启用了 session,在你的配置文件中。

Launcher | 园豆:45045 (高人七级) | 2012-07-31 17:34

业务的需要 如果可以这样我还用全局变量来保存干嘛啊 配置文件 <sessionState mode="InProc"  cookieless="false" timeout="20" /> 对了 mvc里面有2个 我是写在最下面的 没有问题吧 浏览器也没有禁用cookie ,

有的时候 确实需要全局的变量  来保存

支持(0) 反对(0) KyrieYang | 园豆:205 (菜鸟二级) | 2012-07-31 18:54

@bworling: 有得时候需要放弃这样web forms的开发方式。

支持(0) 反对(0) chenping2008 | 园豆:9836 (大侠五级) | 2012-07-31 21:49
0

我觉得好像你在call delete 之前没有调用GetSessionValue(string WC_id),  这样session里肯定没值了。

而且不需要用session吧, 可以把id 存在ViewBag里, 在View中可以用 hidden input 来存viewBag里的id值,  这样 就可以用

public ActionResult Delete(int id) {...}  直接操作了。

收获园豆:8
gunsmoke | 园豆:3592 (老鸟四级) | 2012-08-01 06:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册