我试图根据用户角色更改用户看到的选择。例如:如果用户是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();
}