我增加了下列路线:
// Ignore the alternate path to the home page
routes.IgnoreRoute("Home/Index");
routes.IgnoreRoute("Home");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { id = UrlParameter.Optional }
);访问:http://localhost:60832/home (请注意,HOME是已知的控制器,但在路由过程中被忽略,如上面所示)

访问:http://localhost:60832/testme我得到了这个404页:

他们为什么这么不一样?为什么不返回相同的404页?
请注意,这发生在WebAPI和MVC应用程序项目上,它们定义的路由相同。
发布于 2016-01-06 13:58:50
因为对于/home,您通过忽略它来处理异常,这就是为什么要获得正确的404。
对于错误的c++ontroller/action (testme/indexa),它会在路由表中查找它,并抛出未处理的异常,而我没有通过这个名称找到任何资源(URI)。
为了防止路由来处理对URL模式的请求,可以使用StopRoutingHandler
routes.Add(new Route("{resource}.axd/{*pathInfo}", new StopRoutingHandler()));https://stackoverflow.com/questions/34634538
复制相似问题