2

asp mvc サイトを実行すると、ユーザーに表示される最初のページは Index fromHomeControllerです。

http://localhost:50975/

そのページに表示されるデータは、そのユーザーのみに属します。
ユーザーをログアウトするとき、URLを同じままにしたい(実際にはwww.site.com):

http://localhost:50975/

ただし、コンテンツはありません (ユーザーがログインしていないため)。
今はこのように扱っていますが、いい方法なのか、もっと良い方法があるのでしょうか (おそらくあるでしょう)。
私からしてみれば:

@if (Request.IsAuthenticated)
{... display data 
}
else{... show only some logo and login and register form

基本的に、ユーザーが認証されている場合と認証されていない場合に、ユーザーがホームページにいるときにそのURLを同じままにしておきたいです。

4

2 に答える 2

3

はい、これはあなたのビューで処理され、ユーザーが認証されているかどうかに基づいてさまざまなセクション/部分を含めても問題ないようです。

しかし、ビューでこれらの if を何百回も繰り返してスパゲッティ コードに変換していることに気付いた場合は、2 つの異なるビューを作成し、Index アクションで状況を処理できます。

public ActionResult Index()
{
    if (Request.IsAuthenticated)
    {
        return View("AuthenticatedIndex");
    }

    return View();
}
于 2013-02-24T15:50:16.820 に答える
1

コントローラーから 2 つの異なるビューを返すこともできます。1 つは認証されている場合で、もう 1 つは認証されていない場合です。2 つのビューがどの程度異なるかによって異なります。

于 2013-02-24T15:51:45.863 に答える