如何在视图asp.net mvc之间共享变量

时间:2012-01-19 16:55:36

标签: asp.net asp.net-mvc-2

我需要从我所有的asp.net mvc应用程序中访问UserId,以便用它来隐藏/显示一些元素:

UserId用户表中的主键(在SQL Server中)。

在普通的asp.net中,我使用了一个BasePage:Page并添加了:

public long FinKaynUserId
{
   //long FinKaynUserId = 0;
   get
   {
       if (HttpContext.Current.Session["FinKaynUserId"] != null && Convert.ToInt64(HttpContext.Current.Session["FinKaynUserId"]) != 0)
           return Convert.ToInt64(HttpContext.Current.Session["FinKaynUserId"]);
       else
       {
           HttpCookie myCookie = HttpContext.Current.Request.Cookies["FinKaynUserId"];
           if (myCookie != null)
           {
               HttpContext.Current.Session["FinKaynUserId"] = Convert.ToInt64(myCookie.Value);
               // Session["User"] = (new UserManager()).GetUser(Convert.ToInt64(Session["UserId"]));
               return  Convert.ToInt64(HttpContext.Current.Session["FinKaynUserId"]);
           }
           else
              return 0;
       }
   }
   set
   {
       HttpCookie cookie = new HttpCookie("FinKaynUserId");
       cookie.Value = value.ToString();
       cookie.Secure = false;
       cookie.Expires = DateTime.Now.AddDays(3);
       HttpContext.Current.Request.Cookies.Add(cookie);
       HttpContext.Current.Session["FinKaynUserId"] = value;
   }

}

我如何在asp.net mvc中做同样的事情。

3 个答案:

答案 0 :(得分:1)

HttpContext.Current.Session [“Session_User”] = value;

答案 1 :(得分:1)

如果变量用法是在会话级别,则使用:Session["Variable"]="value"; 否则,如果在整个应用程序中使用,请使用:System.Web.HttpContext.Current.Application["Variable"]="value";

答案 2 :(得分:-2)

一种选择是将您的变量存储在应用程序上下文中:

Application["FinKaynUserId"] = value;

然后你可以在其他代码部分得到它:

if (Application["FinKaynUserId"] != null)
{
    long FinKaynUserId = (long)Application["FinKaynUserId"];
}