【问题标题】:Multiple types were found that match the controller named 'Home'. (weird error)找到了与名为“Home”的控制器匹配的多种类型。 (奇怪的错误)
【发布时间】: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文件夹中搜索控制器-
  • 不错的发现。您应该将其发布为答案(您可以在一段时间后自动接受)。

标签: c# asp.net asp.net-mvc asp.net-mvc-4


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多