Показывать элемент ‹li› только при входе на сайт MVC .net

У меня есть шаблон MVC, и у меня есть 2 роли пользователей, только пользователи с этими ролями могут видеть и щелкать элемент списка на панели навигации. Но так как его видят все роли, то достаточно просто не показывать его не вошедшим в систему людям. Это мой cshtml

<div class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
                    <li>@Html.ActionLink("Home", "Index", "Home")</li>
                    <li>@Html.ActionLink("Roles", "Index", "Roles")</li>
                    <li>@Html.ActionLink("Evaluaties", "About", "Home")</li>
            </ul>
            @Html.Partial("_LoginPartial")
        </div>

Таким образом, последний список Оценки элементов не должен быть виден незарегистрированным людям или, другими словами, только двум ролям Студент (Leerling) и Учитель (Begeleider). Которые используются в моем контроллере.

public ActionResult About()
    {
        if (User.IsInRole("Begeleider"))
        {
            var client = new WebClient();
            var jsonLeerlingen = client.DownloadString(new Uri("http://localhost:8080/projecten/api/leerlingen"));
            var leerlingen = Newtonsoft.Json.JsonConvert.DeserializeObject<IEnumerable<Leerling>>(jsonLeerlingen);
            var jsonEvaluaties = client.DownloadString(new Uri("http://localhost:8080/projecten/api/evaluaties"));
            var evaluaties = Newtonsoft.Json.JsonConvert.DeserializeObject<IEnumerable<Evaluatie>>(jsonEvaluaties);
            ViewBag.Message = leerlingen;
            ViewBag.Evaluaties = evaluaties;

        }
        if (User.IsInRole("Leerling"))
        {
            var email = User.Identity.GetUserName();
            var client = new WebClient();
            var jsonLeerlingen = client.DownloadString(new Uri("http://localhost:8080/projecten/api/leerlingen"));
            var leerlingen = Newtonsoft.Json.JsonConvert.DeserializeObject<IEnumerable<Leerling>>(jsonLeerlingen);
            var jsonEvaluaties = client.DownloadString(new Uri("http://localhost:8080/projecten/api/evaluaties"));
            var evaluaties = Newtonsoft.Json.JsonConvert.DeserializeObject<IEnumerable<Evaluatie>>(jsonEvaluaties);
            ViewBag.Message = leerlingen;
            ViewBag.Evaluaties = evaluaties;

        }
        return View();
    }

я пробовал с if (User.IsInRole("Begeleider")), но я не могу использовать это на странице a.cshtml


person Burst of Ice    schedule 25.08.2016    source источник
comment
Взгляните на _LoginPartial.cshtml, там это уже происходит.   -  person DavidG    schedule 25.08.2016
comment
ты имеешь в виду вот так @if (Request.IsAuthenticated) ? {   -  person Burst of Ice    schedule 25.08.2016


Ответы (1)


Если вы заглянете внутрь _LoginPartial.cshtml частичного представления, вы увидите, что что-то реализовано точно так же, как вы пытаетесь это сделать. Так, например:

@if (Request.IsAuthenticated)
{
    <div>You are logged in</div>
}
else
{   
    <div>You are not logged in</div>
}
person DavidG    schedule 25.08.2016