私は次の問題を抱えています:私のMVCプロジェクトには、同じ名前で名前空間が異なるコントローラーが他にもあります
- Web.Controllers.HomeController
- Web.Controllers.CustomerController
- Admin.Controllers.HomeController
- Admin.Controllers.CustomerController
これまでの私の唯一のルートは次のとおりです。
var DefaultRoute = routes.MapLocalizedRoute("default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new[] {"Admin.Controllers"});
DefaultRoute.DataTokens["UseNamespaceFallback"] = true;
デフォルトのフォールバックは次のとおりです。
ControllerBuilder.Current.DefaultNamespaces.Clear();
ControllerBuilder.Current.DefaultNamespaces.Add("Web.Controllers");
常に名前空間 Admin のコントローラーを取得しようとする意図で、コントローラーがまだ実装されていないが名前空間 Web にある場合は、これを取得します。これは機能しますが、問題が発生します
@HTML.Action("Login","Customer");
どうやら、元のコントローラーの名前空間を無視して、常に Web.Controllers を取ります。
どうにかしてそれを機能させることはできますか?
ありがとう