仅在登录 MVC .net 站点时显示 <li> 项
Posted
技术标签:
【中文标题】仅在登录 MVC .net 站点时显示 <li> 项【英文标题】:Only show an <li> item when logged in on MVC .net site 【发布时间】:2017-01-02 00:06:06 【问题描述】:我有一个 MVC 模板,我有 2 个用户角色,只有具有这些角色的用户才能看到并单击导航栏中的 listItem。但是由于所有角色都可以看到它,所以不向未登录的人显示就足够了。这是我的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>
所以最后一个 listItem Evaluaties 不应该被未登录的人看到,或者换句话说,只有学生 (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 页面中使用它
【问题讨论】:
看看_LoginPartial.cshtml
,那里已经发生了。
你的意思是像这样@if (Request.IsAuthenticated)
?
【参考方案1】:
如果您查看_LoginPartial.cshtml
部分视图,您会看到一些实现方式与您尝试执行的方式完全相同。比如:
@if (Request.IsAuthenticated)
<div>You are logged in</div>
else
<div>You are not logged in</div>
【讨论】:
以上是关于仅在登录 MVC .net 站点时显示 <li> 项的主要内容,如果未能解决你的问题,请参考以下文章
不知何故,某些 css 仅在用户登录时显示 - 而对已注销的用户不显示。 HTML/CSS
css SEO Helper:仅在登录时显示标题的彩色标记: