1

例如,当用户访问索引页面时,他看到的内容与登录用户看到的内容不同。

我怎样才能做到这一点,这是否需要某种注释或其他东西?

4

3 回答 3

1

您是否尝试过 _Layout 视图或部分视图?

于 2013-03-16T20:00:48.737 回答
1

有不止一种方法可以处理这个...

如果您想在控制器或视图中处理它取决于您。理想情况下,我会冒险猜测选择取决于您要显示或不显示的内容,视情况而定。

如果你在控制器中处理它......

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 中显示它,而不是直接放置网页上的内容)

于 2013-03-16T20:22:57.400 回答
1

处理它的一种简单方法是在控制器方法中使用 RedirectToAction。

Function Index() As ActionResult
    If User.Identity.IsAuthenticated Then
        Return RedirectToAction("Index", "AuthenticatedController")
    Else
        Return View()
    End If
End Function
于 2013-06-16T08:03:31.850 回答