2015-08-28 2 views
1

Я работаю на AdminPortal и у меня есть установка базы данных как таковые:MVC5 Бритва, Отображение связанных таблиц значений

User 1:N UserRole N:1 Role 1:N RolePage N:1 Page 

Таким образом, пользователь подключаются к роли через таблицу UserRole и роль на определенную страницу через таблицу RolePage.

Я использовал MVC5 и Entity Framework для создания моделей и контроллеров.

В моем UserController я хочу, чтобы детали также отображали роли, которые в настоящее время нет. Отсюда кто-то должен иметь возможность выбрать «Редактировать», а затем добавить/удалить роли для конкретного пользователя.

Когда я пытаюсь использовать существующие user.UserRoles, как таковой:

@Html.DisplayNameFor(model => model.UserRoles) 

я получаю выход:

System.Data.Entity.DynamicProxies.Role_2928XXXXXXXXXXXXX 

И я хочу, чтобы увидеть список ролей, назначенных их (например, Admin, Sales и т. д.). Каков наилучший способ сделать это?

Вот подробности часть моего контроллера:

// GET: Users/Details/5 
public ActionResult Details(int? id) 
{ 
    if (id == null) 
    { 
     return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 
    } 
    User user = db.Users.Find(id); 
    if (user == null) 
    { 
     return HttpNotFound(); 
    } 
    return View(user); 
} 
+0

Как насчет частичного обзора? – Shoe

+0

С нетерпением загружайте свойства, которые собираетесь использовать, и используйте шаблон дисплея/редактора. –

+0

Хорошо, я смог отобразить мои роли, выполнив цикл foreach на странице Details.cshtml. Сейчас работает. Теперь мой следующий шаг - сделать страницу, которая позволяет добавлять/удалять роли непосредственно с этой страницы. Есть предположения? – NocFenix

ответ

0

я нашел ответ на какой-то аналогичной должности:

https://stackoverflow.com/a/23536667/3534314

В основном у меня была для создания модели представления, в которой присутствовали экземпляры каждой из моих моделей, и оттуда я смог получить всю необходимую мне информацию в одном представлении.

0

Использование UserManager.GetRoles возвращает все роли Пользователя

ViewBag.RolesForThisUser = UserManager.GetRoles(user.Id); 
Смежные вопросы