たとえば、ユーザーがインデックス ページにアクセスすると、ログインしているユーザーに表示されるコンテンツとは異なるコンテンツが表示されます。
どうすればこれを達成できますか、これには何らかの注釈または何か他のものが必要ですか?
たとえば、ユーザーがインデックス ページにアクセスすると、ログインしているユーザーに表示されるコンテンツとは異なるコンテンツが表示されます。
どうすればこれを達成できますか、これには何らかの注釈または何か他のものが必要ですか?
これを処理する簡単な方法の 1 つは、コントローラー メソッドで RedirectToAction を使用することです。
Function Index() As ActionResult
If User.Identity.IsAuthenticated Then
Return RedirectToAction("Index", "AuthenticatedController")
Else
Return View()
End If
End Function
これを処理する方法は複数あります...
コントローラーまたはビューでそれを処理する場合は、あなた次第です。理想的には、場合によっては、何を表示するか、何を表示しないかによって選択が異なると推測する危険があります。
コントローラーで扱えば……
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 でコンテンツを表示することに似ています)。ウェブページのコンテンツ)
_Layout ビューまたは部分ビューを試しましたか?