Я работаю над ядром asp.net 2.1
Теперь у нас есть представления с такими классами, как:
Каждое представлениеу меня есть свой собственный класс, у моего класса есть метод OnGet()
, поэтому я думаю, что это запрос Get при загрузке страницы.Но я помещаю точку останова в этот метод и никогда не нажимаю.
Я хочу сделать простой выбор, чтобы сделать SelectList в моем представлении, как:
public void OnGet()
{
var roles = _roleManager.Roles.ToList();
List<SelectListItem> item = roles.ConvertAll(a =>
{
return new SelectListItem()
{
Text = a.Id.ToString(),
Value = a.Name.ToString(),
};
}).ToList();
var vm = new ApplicationRoleViewModel();
vm.RolesToUser = roles
.Select(a => new SelectListItem()
{
Value = a.Id.ToString(),
Text = a.Name
})
.ToList();
return ;
}
Представление:
<select asp-for="RoleId" asp-items="@Model.RolesToUser">
<option>Please select one</option>
</select>
Но он всегда выбрасывает ноль, потому что он никогда не возвращает результаты из OnGet()
, мой вопрос.Как я могу сделать простое действие get в этой новой структуре представлений!С уважением, полный код:
AssignRoleToUser.cshtml.cs
namespace Security.WebUi.Pages
{
public class AssignRoleToUserModel : PageModel
{
private readonly RoleManager<ApplicationRole> _roleManager;
public AssignRoleToUserModel(
RoleManager<ApplicationRole> roleManager
)
{
_roleManager = roleManager;
}
public void OnGet()
{
var roles = _roleManager.Roles.ToList();
List<SelectListItem> item = roles.ConvertAll(a =>
{
return new SelectListItem()
{
Text = a.Id.ToString(),
Value = a.Name.ToString(),
};
}).ToList();
var vm = new ApplicationRoleViewModel();
vm.RolesToUser = roles
.Select(a => new SelectListItem()
{
Value = a.Id.ToString(),
Text = a.Name
})
.ToList();
return ;
}
}
}
Просмотр:
@page
@model Security.Dto.ViewModels.ApplicationRoleViewModel
<h4>Assign role to user</h4>
<hr />
<div asp-validation-summary="All" class="text-danger"></div>
<select asp-for="RoleId" asp-items="@Model.RolesToUser">
<option>Please select one</option>
</select>
<br />
@section Scripts {
}
ApplicationRoleViewModel:
namespace Security.Dto.ViewModels
{
public class ApplicationRoleViewModel
{
public Guid RoleId { get; set; }
public List<SelectListItem> RolesToUser { get; set; }
}
}