私はこの質問を見ました:ASP.NET MVC one route, two different viewsしかし、私の正確な質問には答えません。ASP.NET MVCで同じルートで2つのビューを表示するにはどうすればよいですか?
私は1つのビューを持ちたいが、あなたがログインしているかどうかに応じて、同じURL /ルートと私はそれをしたいユーザーは、に行くので、もし
:。 mydomain.comその後、彼らはどちらかになりますマーケティングランディングページに移動するか、ユーザーがログインしたダッシュボードに移動します。
私は上記の投稿の質問は、私が使用する必要があることを示唆している:
if (Request.IsAuthenticated) {
return View("Dashboard");
} else {
return View("Index");
}
しかし、私の意見の一つは、それは、アクションが提供するビューモデルのデータを必要とするため、私は彼らの特定のアクションを経ることが必要です。私はこれを行う場合
は今、:
if (Request.IsAuthenticated) {
return RedirectToAction("Index", "Dashboard");
} else {
return View("Index");
}
をこれは動作しますが、リダイレクトは、ユーザーのURLがmydomain.com/dashboardされたダッシュボード-indexアクションのための経路であると発生します。
私はアクションを実行しても、自分のドメインのルートURLを維持できますか?
私はコードの複製をしています。これらは2つの異なるコントローラー(「Dashboard」と「Landing」)にあり、ダッシュボードコントローラーには、着陸コントローラーにはあまり意味を持たない多くのリポジトリーがあります。 –
私は間違っているかもしれませんが、URLを維持してモデルを引き出すために私が考えることができる唯一の方法です。別の(テストされていない)方法は、 "ダッシュボード"ビューのコードブロック内でモデルを取得することですが、これはお勧めしませんが、ビューをリーンに保つ必要があるためです。 –
重労働をしているサービスを構築して、 'LandingPage'アクションと' Dashboard'アクションの両方でそのサービスを使用することができないのはなぜですか? –