0

私は2つの領域を持つプロジェクトを持っています。この 2 つの領域では、コントローラーやビューを共有しないさまざまなメンバー タイプ (生徒と教師など) が使用できます。ただし、どちらも連絡先ページやサポート ページなどのルート コントローラーを共有しています。

現在、名前空間を使用して各エリア内をルーティングしています。

私はこのようなことをしたいのですが、競合するコントローラーがないように名前空間を優先します。

context.MapRoute(
    "Student_Default",
    "{controller}/{action}/{id}",
    new { area = "Student", controller = "Home", action = "Index", id = UrlParameter.Optional },
    new { RoleConstraint = new AuthenticationConstraint() },
    new[] { "Test.Web.Areas.Student.Controllers", "Test.Web.Controllers" }
);

または、「UseNamespaceFallback」を使用してみましたが、不要なすべての領域で検索が行われます。

私が試していないことは、ユーザーがログオンしたときに領域を登録することだけです。これは受け入れられるアプローチでしょうか?

また、各ページをマップすることもできますが、多くの可能性があり、それぞれを行うのは面倒です。

問題は、ルート コントローラーを両方のエリアで使用できるようにするにはどうすればよいでしょうか。さらに情報が必要な場合はお知らせください。私がやろうとしていることについて詳しく教えていただければ幸いです。

4

1 に答える 1

0

週末にこれについて考えた後、「UseNamespaceFallback」を使用することにしました。また、各ユーザーがアクセスできる領域を管理するユーザー ロールも実装しました。認証の方法として名前空間を使用しないという推奨事項を読んだので、これはより良いアプローチだと思います。

于 2013-01-31T23:23:23.807 に答える