Как ввести авторизацию в панели навигации, для специального меню, для роли администратора, которые содержат HTML-код?код - PullRequest
0 голосов
/ 01 мая 2019

Проблема в том, что я пробовал разные способы ввести авторизацию для специального тега из моего флота.В темно-баре я использую модель UserData, которая импортирует данные из БД.

Я пробовал этот код, но у меня есть ошибка «Невозможно преобразовать лямбда-выражение в тип« bool », потому что это не тип делегата» if (u => u.URole == «admin») [в ожидании] "

@if (u => u.URole == "admin")
                {
                    <li class="nav-item">
                        <a class="nav-link" href="@Url.Action("Contact", "Home")">Contact</a>
                    </li>
                }

Я также пытался, но у меня есть ошибка" Оператор '==' не может быть применен к операндам типа 'URole' и 'string' '"

@if (Model.URole == "admin")
                {
                    <li class="nav-item">
                        <a class="nav-link" href="@Url.Action("Contact", "Home")">Contact</a>
                    </li>
                }

У меня есть этот класс, где я получаю и устанавливаю Имя пользователя и Роль из Microsoft SQL, DB.

public class UserData
{
    public string Username { get; set; }
    public URole URole { get; set; }
    public List<string> Products { get; set; }
    public string SingleProduct { get; set; }
}

И класс URole, который содержит мои роли

public enum URole
{
    User,
    Moderator,
    Admin
}

1 Ответ

0 голосов
/ 01 мая 2019

Вы сравниваете свое перечисление URole с string, что невозможно сделать, потому что они разных типов и не имеют неявного преобразования.Вы должны преобразовать любую сторону.

Лучше всего использовать перечисление и для вашего чека, например:

@if (Model.URole == URole.Admin)
{
    // Your HTML
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...