例如,当用户访问索引页面时,他看到的内容与登录用户看到的内容不同。
我怎样才能做到这一点,这是否需要某种注释或其他东西?
您是否尝试过 _Layout 视图或部分视图?
有不止一种方法可以处理这个...
如果您想在控制器或视图中处理它取决于您。理想情况下,我会冒险猜测选择取决于您要显示或不显示的内容,视情况而定。
如果你在控制器中处理它......
Function Index()As ActionResult
If Request.IsAuthenticated Then
' Logged in is TRUE
Return View(LoggedInUserContentModel)
Else
' Logged in is FALSE
Return View(SiteGuestUserContentModel)
End If
End Function
如果你在视图中处理它......直接显示页面内容
<% If Request.IsAuthenticated Then %>
<!-- User is Logged In -->
Welcome <b><%: Page.User.Identity.Name %></b>!
[ <%: Html.ActionLink("Log Off", "LogOff", "Account")%> ]
<% Else %>
<!-- User is NOT Logged In -->
Welcome <b>Guest</b> please login!
[ <%: Html.ActionLink("Log On", "LogOn", "Account")%> ]
<% End If %>
您可以选择不直接显示嵌入页面本身的内容,但可以选择显示从 ChildAction 中检索到的内容(这类似于使用旧的非 MVC 网页设计风格在 UserControl 中显示它,而不是直接放置网页上的内容)
处理它的一种简单方法是在控制器方法中使用 RedirectToAction。
Function Index() As ActionResult
If User.Identity.IsAuthenticated Then
Return RedirectToAction("Index", "AuthenticatedController")
Else
Return View()
End If
End Function