Динамические ссылки Navbar в общем макете MVC / Razor - PullRequest
0 голосов
/ 29 мая 2019

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

<ul>
 @if (User.Identity.IsAuthenticated)
  {
   <li class="nav-item dropdown">
     <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Bookings</a>
     <ul class="dropdown-menu">                             
     <li>@Html.ActionLink("All Bookings", "GetAllBookings", "Booking")</li>
     <li>@Html.ActionLink("Member's Dashboard", "GetBookingsByStatus", "Booking")</li>
     </ul>
   </li>                     
</ul>

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

1 Ответ

1 голос
/ 29 мая 2019

даже в вашем примере кода вы можете просто пропустить элементы списка, обернув их в условное выражение @if и проверив их разрешения любым подходящим вам способом.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...