Я разрабатываю веб-сайт на Asp. net страницах razor ядра 3.0, Мой веб-сайт имеет страницу макета. Я храню некоторые данные, такие как имя пользователя, имя роли в 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 на страницах _layout в общей папке. Я использую @ Model.FormUserName на странице _layout, давая исключение, подобное этому исключению RuntimeBinderException: 'LEMS_Demo.Pages.Admin.DashboardModel' не содержит определения для 'FormUserName'