В качестве опции вы можете создать новую модель представления для создания роли.Это похоже на то, что было сделано для пользователей в шаблоне проекта MVC по умолчанию при включении аутентификации отдельных пользователей.Если вы посмотрите на AccountViewModels.cs
, вы увидите пару моделей представлений.
Например, вы можете создать следующий класс:
public class ApplicationRoleCreateModel
{
[Required]
public string Name { get; set; }
[Required]
[Display(Name = "Application Id")]
public string ApplicationId { get; set; }
}
Предположим, вы создали ApplicationRole
класс, включающий пользовательские свойства как , описанный здесь , затем может создать следующий класс контроллера ролей:
[Authorize]
public class RoleController : Controller
{
private ApplicationRoleManager _roleManager;
public RoleController() { }
public RoleController(ApplicationRoleManager roleManager)
{
RoleManager = roleManager;
}
public ApplicationRoleManager RoleManager
{
get
{
return _roleManager ??
HttpContext.GetOwinContext().Get<ApplicationRoleManager>();
}
private set { _roleManager = value; }
}
public ActionResult Index()
{
var model = RoleManager.Roles.ToList();
return View(model);
}
public ActionResult Create()
{
return View();
}
[HttpPost]
public async Task<ActionResult> Create(ApplicationRoleCreateModel model)
{
if (ModelState.IsValid)
{
var result = await RoleManager.CreateAsync(new ApplicationRole()
{
Name = model.Name,
ApplicationId = model.ApplicationId
});
if (result.Succeeded)
return RedirectToAction("Index");
else
foreach (var error in result.Errors)
ModelState.AddModelError("", error);
}
return View();
}
}