【发布时间】:2013-09-01 16:25:34
【问题描述】:
我有以下问题: 在我的 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 而不考虑原始控制器的命名空间。
我能做到吗?
谢谢
【问题讨论】:
标签: c# asp.net-mvc model-view-controller controller namespaces