TempData在页面重新加载时丢失

时间:2013-02-16 22:42:57

标签: c# asp.net asp.net-mvc

我使用TempData存储登录用户角色,但在用户登录并按F5重新加载页面后,我遇到错误,指出Object reference not set to an instance of an object

我使用TempData,因为我的页面需要重定向。 用户在提交之前填写登录表单,我不知道如何检索发布的数据,因为我需要将用户重定向到管理页面,以防他的角色为administrator或仅standard页面如果他是normal user

    private bool IsAdmin(string username)
    {
        return (Roles.GetRolesForUser(username).ToList().Contains("administrator"));
    }

    public ActionResult AdminLayout() 
    {            
        if(IsAdmin(TempData["LoginUsername"].ToString())) //Error TempDate on Reload
        {
             return View();
        } 
        else
        {
             return Index();
        }
    }

1 个答案:

答案 0 :(得分:2)

为什么不将它存储在会话变量中?顾名思义,TempData只是暂时的,会话变量会将数据保存更长时间。