我是ASP.NET MVC的新手,正在使用该框架的1.0版本。我有一个site.master页面,其中包含以下硬编码菜单
<div id="menucontainer">
<ul id="menu">
<li><%= Html.ActionLink("Home", "Index", "Home")%></li>
<li><%= Html.ActionLink("Drivers", "List/?category=Drivers", "Product")%></li>
<li><%= Html.ActionLink("Irons", "List/?category=Irons", "Product") %></li>
<li><%= Html.ActionLink("Wedges", "List/?category=Wedges", "Product") %></li>
<li><%= Html.ActionLink("Putters", "List/?category=Putters", "Product") %></li>
</ul>
</div>
我想在用户登录时在菜单上显示额外的项目。像“查看我的房源”之类的东西。我以肮脏的hacky方式做这件事没问题,所以我试过了
<% if (User.Identity.IsAuthenticated) ...
但User
在此上下文中无效。我的问题是如何仅在用户登录时显示额外的菜单项?
答案 0 :(得分:11)
您可以通过Context对象访问User对象:
<% if(Context.User.Identity.IsAuthenticated) ...
答案 1 :(得分:10)
我也刚刚发现我可以使用
<% if (Request.IsAuthenticated) { %>
<li><%= Html.ActionLink("View my Listings", "MyListings", "List")%>
<% } %>
答案 2 :(得分:7)
对于MVC 4+我们喜欢这样:
{{1}}