发送列表(asp-items)到会话,asp.net



我试图根据用户角色更改用户看到的选择。例如:如果用户是admin,那么选择为:admin, system,....

我首先创建了这个:

public List<SelectListItem> Selection { get; set; }

:

public IActionResult Recht()
{
if (UserModel.RECHT.Equals(50))
{
Selection.Add(new SelectListItem { Value = "SY", Text = "System" });
Selection.Add(new SelectListItem { Value = "AD", Text = "Admin" });
Selection.Add(new SelectListItem { Value = "ID", Text = "Innendienst" });
Selection.Add(new SelectListItem { Value = "SP", Text = "Spediteur" });
Selection.Add(new SelectListItem { Value = "DS", Text = "Disponent" });


}
if (UserModel.RECHT.Equals(40))
{
Selection.Add(new SelectListItem { Value = "AD", Text = "Admin" });
Selection.Add(new SelectListItem { Value = "ID", Text = "Innendienst" });
Selection.Add(new SelectListItem { Value = "SP", Text = "Spediteur" });
Selection.Add(new SelectListItem { Value = "DS", Text = "Disponent" });
}
if (UserModel.RECHT.Equals(30))
{
Selection.Add(new SelectListItem { Value = "ID", Text = "Innendienst" });
Selection.Add(new SelectListItem { Value = "SP", Text = "Spediteur" });
Selection.Add(new SelectListItem { Value = "DS", Text = "Disponent" });
}
if (UserModel.RECHT.Equals(20))
{
Selection.Add(new SelectListItem { Value = "SP", Text = "Spediteur" });
Selection.Add(new SelectListItem { Value = "DS", Text = "Disponent" });
}
if (UserModel.RECHT.Equals(10))
{
Selection.Add(new SelectListItem { Value = "DS", Text = "Disponent" });
UserRoleMessage = string.Join(",", Selection);
HttpContext.Session.SetString("UserRoleMessage", UserRoleMessage);
}

UserRoleMessage = Convert.ToString(UserModel.RECHT);
HttpContext.Session.SetString("UserRoleMessage", UserRoleMessage);

return Page();

}

当我运行我的代码时,我仍然得到一个空的选择

如果你想在页面加载时设置选择,你可以在OnGet中调用Recht:

public void OnGet()
{
Recht();
}

如果你想用一个表单传递UserModel.RECHT给处理器,并改变选择的值,这里有一个演示:

形式:

<form method="get" asp-page-handler="Recht">
<input asp-for="UserModel.RECHT" />
<input type="submit" value="submit"/>
</form>

处理程序:

[BindProperty]
public UserModel UserModel{get;set;}
public IActionResult OnGetRecht()
{
if (UserModel.RECHT.Equals(50))
{
Selection.Add(new SelectListItem { Value = "SY", Text = "System" });
Selection.Add(new SelectListItem { Value = "AD", Text = "Admin" });
Selection.Add(new SelectListItem { Value = "ID", Text = "Innendienst" });
Selection.Add(new SelectListItem { Value = "SP", Text = "Spediteur" });
Selection.Add(new SelectListItem { Value = "DS", Text = "Disponent" });


}
if (UserModel.RECHT.Equals(40))
{
Selection.Add(new SelectListItem { Value = "AD", Text = "Admin" });
Selection.Add(new SelectListItem { Value = "ID", Text = "Innendienst" });
Selection.Add(new SelectListItem { Value = "SP", Text = "Spediteur" });
Selection.Add(new SelectListItem { Value = "DS", Text = "Disponent" });
}
if (UserModel.RECHT.Equals(30))
{
Selection.Add(new SelectListItem { Value = "ID", Text = "Innendienst" });
Selection.Add(new SelectListItem { Value = "SP", Text = "Spediteur" });
Selection.Add(new SelectListItem { Value = "DS", Text = "Disponent" });
}
if (UserModel.RECHT.Equals(20))
{
Selection.Add(new SelectListItem { Value = "SP", Text = "Spediteur" });
Selection.Add(new SelectListItem { Value = "DS", Text = "Disponent" });
}
if (UserModel.RECHT.Equals(10))
{
Selection.Add(new SelectListItem { Value = "DS", Text = "Disponent" });
UserRoleMessage = string.Join(",", Selection);
HttpContext.Session.SetString("UserRoleMessage", UserRoleMessage);
}

UserRoleMessage = Convert.ToString(UserModel.RECHT);
HttpContext.Session.SetString("UserRoleMessage", UserRoleMessage);

return Page();

}

最新更新