我是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>
Run Code Online (Sandbox Code Playgroud)
我想在用户登录时在菜单上显示一个额外的项目.像"查看我的房源"之类的东西.我以肮脏的hacky方式做这件事没问题,所以我试过了
<% if (User.Identity.IsAuthenticated) ...
Run Code Online (Sandbox Code Playgroud)
但User在这种情况下无效.我的问题是如何仅在用户登录时显示额外的菜单项?
mar*_*ind 11
您可以通过Context对象访问User对象:
<% if(Context.User.Identity.IsAuthenticated) ...
Run Code Online (Sandbox Code Playgroud)
Pet*_*lly 10
我也刚刚发现我可以使用
<% if (Request.IsAuthenticated) { %>
<li><%= Html.ActionLink("View my Listings", "MyListings", "List")%>
<% } %>
Run Code Online (Sandbox Code Playgroud)
对于MVC 4+我们喜欢这样:
@if(Context.User.Identity.IsAuthenticated) {
<li> @Html.ActionLink(...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14946 次 |
| 最近记录: |