Asp.net core 如何在Asp.net核心页面的布局页面中检索临时数据

Asp.net core 如何在Asp.net核心页面的布局页面中检索临时数据,asp.net-core,razor-pages,Asp.net Core,Razor Pages,我正在开发Asp.NETCore3.0RazorPages网站,我的网站有一个布局页面。 我在登录页面模型类的TempData中存储一些数据,如用户名、角色名,如下所示 [TempData] public int FormRoleId{ get; set; } [TempData] public int FormUserId { get; set; } [TempData] public string FormUserName { ge

我正在开发Asp.NETCore3.0RazorPages网站,我的网站有一个布局页面。 我在登录页面模型类的TempData中存储一些数据,如用户名、角色名,如下所示

     [TempData]
     public int FormRoleId{ get; set; }

     [TempData]
     public int FormUserId { get; set; }

    [TempData]
    public string FormUserName { get; set; }

     public IActionResult OnPost()
    {
        if (string.IsNullOrEmpty(eUserName.Trim()))
        {
            ModelState.AddModelError("UserName", "User Name is a required field.");
            return Page();
        }
        if (string.IsNullOrEmpty(ePassword.Trim()))
        {
            ModelState.AddModelError("Password", "User Name is a required field.");
            return Page();
        }

        var userresult = from usr in _context.TblAllUserDetails
                         where usr.UserName == eUserName.Trim() && usr.Password == ePassword.Trim() && usr.IsDeleted != true
                         select usr;

        if (userresult != null && userresult.ToList().Count > 0)
        {
            int rolid = 0;
            foreach (var item in userresult)
            {
                rolid = item.RoleId;
                FormRoleId = item.RoleId;
                FormUserId = item.UserId;
                FormUserName = item.UserName;
                FormEmailId = item.EmailId;
                TempData.Keep();
            }

            if(rolid == 1)
            {
                return RedirectToPage("./Admin/Dashboard");
            }
            else if (rolid == 2) //Main User
            {
                return RedirectToPage("./Agency/Dashboard");
            }                
        }
如何在共享文件夹的_布局页面中获取这些tempdata值。 我在布局页面中使用@Model.FormUserName,出现如下异常 RuntimeBinderException:“LEMS_Demo.Pages.Admin.DashboardModel”不包含“FormUserName”的定义

im在布局页面中使用@Model.FormUserName,出现异常,如 此RuntimeBinderException:'LEMS_Demo.Pages.Admin.DashboardModel' 不包含“FormUserName”的定义

由于DashboardModel不包含FormUserName属性,因此将显示上述异常

要获取TempData值,可以使用以下代码:

        @{
            if (TempData["FormUserName"] != null)
            {
                <h3>Message: @TempData["FormUserName"]</h3>
                TempData.Peek("FormUserName");
            }
         }
@{
if(TempData[“FormUserName”]!=null)
{
消息:@TempData[“FormUserName”]
TempData.Peek(“FormUserName”);
}
}
有关使用TempData的更多详细信息,请查看以下链接: