ASP.net 具有相同控制器名称(不同命名空间)的 MVC 单独解决方案

本文关键字:命名空间 解决方案 单独 MVC net 控制器 ASP | 更新日期: 2023-09-27 18:31:44

当我在不同的项目中具有相同的控制器名称时,我遇到了一些问题。我的主要解决方案是 Web 表单,我有两个 MVC 单独的项目(单独的文件夹),问题是如果我在第一个项目中有一个名为 HomePage 的控制器,并且在解决方案 2 中具有相同的控制器名称,则会出现错误:找到与名为"主页"的控制器匹配的多种类型。如果为此请求提供服务的路由 ('{*pathInfo}') 未指定命名空间来搜索与请求匹配的控制器,则可能会发生这种情况。如果是这种情况,请通过调用采用"命名空间"参数的"MapRoute"方法的重载来注册此路由。

对"主页"的请求已找到以下匹配的控制器:项目1.控制器.主页控制器项目2.控制器.主页控制器

global.asa 位于 Web 表单解决方案中,我添加了两个路由映射,但我仍然有相同的错误。有什么解决方案可以解决这个问题吗?我可以在视图中使用命名空间进行操作吗@Html.操作("索引", "主页")谢谢

ASP.net 具有相同控制器名称(不同命名空间)的 MVC 单独解决方案

如果需要在注册路由时设置命名空间值,则应这样做:

routes.MapRoute(
        name: "RouteName",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
        namespaces: new string[] { "MyNamespace.Controllers" });

通过指定命名空间,它消除了歧义。

相关文章: