找到了与名为“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”的控制器匹配的多种类型