asp.net - ASP.NET MVC - 同一解决方案中的多个控制器冲突
问题描述
我在同一个解决方案中有两个 Web 项目,第一个启动,第二个给我一个错误:
“找到了与名为‘Home’的控制器匹配的多种类型。如果为该请求提供服务的路由(‘Home / {action} / {id}’)未指定命名空间来搜索与请求匹配的控制器,则可能会发生这种情况. 如果是这种情况,请通过调用采用 'namespaces' 参数的 'MapRoute' 方法的重载来注册此路由。
我指定:
- 这两个项目有不同的命名空间(Intranet / Extranet)。
- 这两个项目是完全独立的。
- 这两个项目不相互引用。
- 我不想添加区域。
- 这两个项目(正在开发中)托管在我的本地 IIS 上,每个项目都有不同的域名(intranet.lan / extranet.lan)。
我不明白如何告诉 Visual Studio 不要查看其他项目。这种行为真的很不正常,我认为这是一个错误或一个非常糟糕的设计策略。
我还假设我已经阅读了很多有关该主题的帖子,但从未找到任何答案。每个人都创建一个区域(我不想这样做,因为在项目中为项目创建一个区域并不“干净”,这完全是愚蠢和不合逻辑的)。
如果有人可以帮助我,那就太好了。
编辑:
我将我的 Extranet 项目放在一个单独的目录中,我创建了一个新的解决方案并添加了它。我将它配置为在 IIS Express 下启动,它还告诉我它找到了两个控制器。内联网和外联网。但是,在 Extranet 项目中带有“Intranet”的 Ctrl + F 没有给出任何结果。我还打开了项目和解决方案文件,但找不到任何对 Intranet 的引用。令人难以置信的是,Intranet 项目似乎与 Extranet 链接,但在代码中没有任何引用或议论。即使在重建项目之后。
编辑2:
我试过了
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "Extranet.Controllers" }
);
或者
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "Extranet.Controllers" }
);
但是没有效果。
解决方案
经过几次搜索,我终于找到了它。实际上有必要在每个项目的路由中指定命名空间,如下所示:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "Intranet.Controllers" }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "Extranet.Controllers" }
);
但是清洁和再生溶液是不够的。还需要删除 bin / obj 的内容并重新生成项目。我向微软报告了这个错误,因为我为此搜索了几个小时。我有信心清理项目,我不应该有。
找到了多种与名为“帐户”的控制器匹配的类型。MVC 4 & 使用 RouteConfig.CS
非常感谢@tno2007
推荐阅读
- github-api - 在 PyGithub API 中设置 Accept Headers 以获取提交差异
- blockchain - Solidity - “编译器错误:堆栈太深”
- javascript - 除非第一次警告,否则 Jquery 在单击后找不到任何元素
- pandas - 查找关于熊猫数据框中某个特征的行的第一次出现
- r - 在R中计算分类变量的组合,无论顺序如何?
- javascript - loadStripe 不断给我 {type: "invalid_request_error", message: "Invalid API Key provided: undefined"} 错误
- react-native - 从 CI/CD gitlab 发布时如何使用访问令牌进行博览会
- python-3.x - 附加和更新字典创建克隆
- python - 如何从另一个脚本访问函数的特定变量?
- php - Laravel Voyager 图片上传失败并收到错误消息“Intervention\Image\Exception\NotSupportedException Reading Exif data is not supported”