我有以下问题:在我的 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 而不考虑原始控制器的命名空间。
我能以某种方式完成这项工作吗?
谢谢