/ / केवल एमवीसी .net साइट पर लॉग इन होने पर <li> आइटम दिखाएं - asp.net, .net, asp.net-mvc, लॉगिन, उपयोगकर्ता-भूमिकाएं

एमवीसी .net साइट - एएसपीनेट, .net, asp.net-mvc, लॉगिन, उपयोगकर्ता-भूमिकाओं पर लॉग इन होने पर केवल <li> आइटम दिखाएं

मेरे पास एक एमवीसी टेम्पलेट है और मेरे पास 2 उपयोगकर्ता भूमिकाएं हैं,केवल इन भूमिकाओं वाले उपयोगकर्ता नेविगेशनबार में सूची इटिम देख और क्लिक कर सकते हैं। लेकिन चूंकि सभी भूमिकाएं इसे देख सकती हैं, यह सिर्फ लोगों में लॉग इन करने के लिए पर्याप्त नहीं है। यह मेरा सीएसटीएमएल है

<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>

तो आखिरी सूची इटिम मूल्यांकन को लोगों में या अन्य शब्दों में केवल दो भूमिकाओं (छात्र) और शिक्षक (बेजलीडर) द्वारा लॉग इन नहीं किया जाना चाहिए। जिसका उपयोग मेरे नियंत्रक में किया जाता है।

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")) लेकिन मैं इसे एक cshtml पेज में उपयोग नहीं कर सकता

उत्तर:

जवाब के लिए 2 № 1

यदि आप अंदर एक नज़र डालते हैं _LoginPartial.cshtml आंशिक दृश्य, आप ठीक उसी तरह कार्यान्वित कुछ देखेंगे जिस तरह से आप इसे करने का प्रयास कर रहे हैं। तो उदाहरण के लिए:

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