加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 静态变量的问题

发布时间:2020-12-15 20:02:00 所属栏目:百科 来源:网络整理
导读:我有静态变量的问题.我的控制器组织的一部分如下: namespace MyApp.Controllers{ public class DevicesController : Controller { static int some_var = 0; [AcceptVerbs(HttpVerbs.Post)] public ActionResult SetValue(int temp){ some_var = temp; retu
我有静态变量的问题.我的控制器组织的一部分如下:

namespace MyApp.Controllers
{
    public class DevicesController : Controller
    {            
        static int some_var = 0;           

        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult SetValue(int temp){
           some_var = temp;
           return RedirectToAction("DisplayValue");
        }

        [Authorize]
        public ActionResult DisplayValue(){              
          .... 
          return View(some_object);
        }
     }
}

当多个用户同时使用此视图时会出现问题.所有用户都使用相同的静态变量并更改其值.怎么解决这个?

解决方法

您可以使用,

HttpContext.Current.Session["some_var"]

而不是some_var,这将有所帮助.这将为记录的用户保留一个会话,您可以使用HttpContext.Current静态访问它

namespace MyApp.Controllers 
{ 
    public class DevicesController : Controller 
    { 

        [AcceptVerbs(HttpVerbs.Post)] 
        public ActionResult SetValue(int temp){ 
           HttpContext.Current.Session["some_var"] = temp; 
           return RedirectToAction("DisplayValue"); 
        } 

        [Authorize] 
        public ActionResult DisplayValue(){ 

          ....  
          return View((int)HttpContext.Current.Session["some_var"]); 
        } 
     } 
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读