0

ASP .NET MVC 3+ で、特定の状態に基づいて複数のアクションに対して 1 つの同じルートを持つことは可能ですか?

たとえば、LinkedIn やいくつかの同様のサイトでは、同じルートhttp://site-domain/home が複数のビューに使用されます。

ユーザーがログインしていない場合、ホームページにはウェルカム ビューが表示されますが、ユーザーがログインしている場合は、通知やその他のユーザー固有のデータが表示されるユーザーのホームページが表示されます。

ユーザーのログイン状態やその他の種類のデータ コントロールに応じて、同じルート URL を使用して、異なるコントローラーの異なるアクションにルーティングできますか?

注: 2 つのアクションはまったく異なるロジックを持っているため、同じアクションで異なるビューを表示することはできません。

4

1 に答える 1

0

もちろん。いくつかのオプションがあります。最初のオプションは、ユーザーのプロパティのいくつかに基づいて選択したビューをユーザーに提供することですが、ビューモデルの制御は制限されています。

public ActionResult SomeAction(){

if(User.Identity.Name == "Admin")
    return View("AdminView");
else
    return View("SomeOtherView");
}

もう 1 つのオプションは、次の手順に従って、コントローラー メソッド内でユーザーを別のアクションにリダイレクトすることです。 -to-another-action-and-passing-information-to-it.aspx

もちろん、何らかのユーザー プロパティに基づいて、ページの部分ビューをレンダリングするオプションが常にあります。解決策を見つけるのに役立つプロジェクトに関する詳細情報を提供できれば.

于 2013-04-20T21:35:14.527 に答える