找到了与名为“Home”的控制器匹配的多种类型。 (奇怪的错误)

Posted

技术标签:

【中文标题】找到了与名为“Home”的控制器匹配的多种类型。 (奇怪的错误)【英文标题】:Multiple types were found that match the controller named 'Home'. (weird error) 【发布时间】:2014-05-10 23:26:30 【问题描述】:

我的新 asp.net 应用出现此错误

找到了与名为“Home”的控制器匹配的多种类型。如果为该请求提供服务的路由 ('controller/action/id') 未指定命名空间来搜索与请求匹配的控制器,则可能会发生这种情况。如果是这种情况,请通过调用带有“namespaces”参数的“MapRoute”方法的重载来注册此路由。

“主页”请求找到了以下匹配的控制器: Contoso.CAMPF.Sample1Web.Controllers.HomeController CAMPF.WebApp.Controllers.HomeController

奇怪的是,我在任何地方都没有 constoso 命名空间,我删除了它,过去我有,但我决定在某个时候更改程序集和命名空间名称。

namespace CAMPF.WebApp.Controllers

    public class HomeController : Controller
    
        [SharePointContextFilter]
        public ActionResult Index()
        

【问题讨论】:

您是否在解决方案/项目中搜索过“Contoso”?默认命名空间的项目属性是什么? 是的,我做到了,Contoso 不存在,Sample1Web 也一样,在项目中找不到,真的很奇怪 嗯....这很奇怪。您是否尝试过清理解决方案然后重新构建它? 发现错误,因为我更改了命名空间和程序集名称,然后在bin文件夹上旧的dll还在,所以看起来mvc引擎在整个bin文件夹中搜索控制器- 不错的发现。您应该将其发布为答案(您可以在一段时间后自动接受)。 【参考方案1】:

发现错误,因为我更改了命名空间和程序集名称,然后在bin文件夹上旧的dll还在,所以看起来mvc引擎在整个bin文件夹中搜索控制器

【讨论】:

【参考方案2】:

我有同样的问题。事实证明,旧的 .ddl 文件仍在 bin 文件夹中。删除这些后,一切都很好。基本上,当您重命名命名空间时,它实际上重命名了输出程序集。在构建时,新的 .ddls 已创建,但旧的 .ddls 仍然存在。

祝你好运,编码愉快:))))

【讨论】:

以上是关于找到了与名为“Home”的控制器匹配的多种类型。 (奇怪的错误)的主要内容,如果未能解决你的问题,请参考以下文章

命名空间更改 - 找到与名为“Home”的控制器匹配的多种类型

MVC5 找到与名为“Home”的控制器匹配的多种类型

发现多个类型的家庭控制器

找到了多个与名为“帐户”的控制器匹配的类型。 MVC 4 & 使用 RouteConfig.CS

找到多个与名为“Home”的控制器匹配的类型

找到多个与名为“Home”的控制器匹配的类型