Почему бы вам просто не распечатать их, чтобы просмотреть возможные значения?
Ваш код, кажется, имеет незначительную ошибку. Я считаю, что это должно быть
@if(Model.Roles.Contains(DON'T_KNOW_WHAT_TO_WRITE_HERE){}
(только один «@»)
EDIT: Поскольку Model.Roles являются просто многие-ко-многим ссылки, вам необходимо позвонить UserManager для получения ролей пользователей. Например:
public class UserDetailsModel {
public string Id { get; set; }
public ApplicationUser User { get; set; }
public IList<string> Roles { get; set; }
}
и детали действия в контроллере:
public ActionResult Details(string id) {
var model = new UserDetailsModel
{
Id = id,
User = UserManager.FindById(id),
Roles = UserManager.GetRoles(id)
};
return View(model);
}
Вы можете получить UserManager от OwinContext или вводить его в контроллер:
private readonly ApplicationUserManager _userManager;
public UsersController(){}
public UsersController(ApplicationUserManager userManager) {
_userManager = userManager;
}
public ApplicationUserManager UserManager {
get {
return _userManager ?? HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
}
}
Что такое 'Model.Roles'? –
@AntP 'Model.Roles' является свойством' ApplicationUser', он был навязан стандартным шаблоном в ASP.NET MVC 5 (в старых версиях авторизация была выполнена по-другому). Это свойство было создано Visual Studio при создании нового проекта с индивидуальными учетными записями. – Yoda