路由错误是指不再存在的命名空间

时间:2015-06-12 19:10:46

标签: asp.net asp.net-mvc visual-studio

Visual Studio 2013,包含最新更新和ASP.NET MVC5 +最新的Web.API包。

我收到此错误:

  

发现多个类型与名为“Example”的控制器匹配......

     

'Feeds'的请求找到了以下匹配的控制器:   OldNamespace.Controllers.ExampleController和NewNamespace.Controllers.ExampleController

以前在我的项目中,我有一个名为“OldNamespace.Controllers”的命名空间,我使用“NewNamespace.Controllers”在文件中查找和替换。下面找到并替换我清理了解决方案,重建,删除了ASP.NET临时文件,并对项目的目录进行了全文搜索,以查找对“OldNamespace”的任何引用,但没有找到。最后,我在文件系统中搜索了名为“OldNamespace ...”的任何DLL并删除了它们,删除了bin和obj目录并重新启动了PC。

然而,这个错误仍然存​​在。

1 个答案:

答案 0 :(得分:0)

检查这些可能的情况

使用NewNamespace

尝试ReplaceAll OldNamespace

如果问题仍然存在,因为解决方法在路由配置中添加命名空间,但不是确切的解决方案

公共类RouteConfig     {         public static void RegisterRoutes(RouteCollection routes)         {             routes.IgnoreRoute( “{}资源个.axd / {*} PATHINFO”);

grunt.initConfig({
  connect: {
  all: {
    options: {
        port: 10100,
        hostname: "0.0.0.0",
        livereload: true
    }
  },
  webservices_mock: {
    options: {
        port: 8081,
        hostname: "0.0.0.0",
        middleware: function(connect, options, middlewares) {
            middlewares.unshift(function(req, res, next) {
                var pattern = new RegExp('\/rest\/[a-zA-Z0-9\/.]+', 'i'),
                    matches = req.url.match(pattern);

                if (!matches) {
                    return next();
                }

                req.setEncoding('utf8');
                res.writeHead(200, {"Content-Type": "application/json"});
                res.write(grunt.file.read(req.url.replace("/rest", "json_contracts") + "/example.json"));

                res.end();
            });

            return middlewares;
        }
    }
  }
},
...