1

たとえば、ユーザーがインデックス ページにアクセスすると、ログインしているユーザーに表示されるコンテンツとは異なるコンテンツが表示されます。

どうすればこれを達成できますか、これには何らかの注釈または何か他のものが必要ですか?

4

3 に答える 3

1

これを処理する簡単な方法の 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 に答える
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 スタイルの Web デザインを使用して UserControl でコンテンツを表示することに似ています)。ウェブページのコンテンツ)

于 2013-03-16T20:22:57.400 に答える
1

_Layout ビューまたは部分ビューを試しましたか?

于 2013-03-16T20:00:48.737 に答える