2014-02-12 26 views
2

请帮我解决,值存储在特定用户的会话中,当我从cshtml中检索会话值时,它显示PC-用户名,而不是数据库中存在的特定用户名。请建议会话代码以显示特定的用户名。我在Cotrtoller中使用此代码。如何在ASP.Net中的cshtml文件中获取会话值MVC4

{public ActionResult LogIn(Models.Tbl_Users user) 
     { 
      Session["Username"] = user.UserName; 
      var sessionval = Session["Username"].ToString(); 
      if (!ModelState.IsValid) 
      { 
       if (Isvalid(user.UserName, user.UserPassword)) 
       { 
        FormsAuthentication.SetAuthCookie(user.UserName, false); 

        string status = Session["Username"].ToString(); 
        if (status == "admin") 
        { 
         // return RedirectToAction("adminpage", "UserLogIn"); 
         return RedirectToAction("adminpage", "UserLogin"); 
        } 
        else 
        { 
         return RedirectToAction("userpage", "UserLogIn"); 
}     } 

这是我CSHTML代码:

{ 
@Html.AntiForgeryToken() 
     @if (Request.IsAuthenticated) 
     { 

     <strong>@Html.Encode(User.Identity.Name)</strong> 

       @Html.ActionLink("Log Out","LogOut","UserLogIn") 



     } 

}

回答

9

我想你可以直接访问使用

@HttpContext.Current.Session["Username"].ToString(); 
+0

它的工作会话变量,非常感谢你,, ,但会话用户名显示为标签,,,如何使其成为超链接,,,请帮助 – Vetri

+1

试试这个'@H tml.ActionLink(@ HttpContext.Current.Session [“Username”]。ToString(),“NameOfHandlingFunction”);' – Rohan

+0

它的工作,非常感谢罗汉。 – Vetri

相关问题