当其中包含某些文件扩展名时,我遇到路由不匹配的问题。我怀疑这可能是 IIS 问题,但我似乎无法找到它。
首先,我关闭了 RouteExistingFiles:
routes.RouteExistingFiles = false;
然后我有以下路线:
routes.MapRoute("", "category/{category}.aspx", new { controller = "Category", action = "View" });
并且以下 url 与此路由不匹配:
http://mysite/category/test.aspx
但是,如果我删除文件扩展名并将路由更改为:
routes.MapRoute("", "category/{category}", new { controller = "Category", action = "View" });
然后上面的 url 匹配 {category} 设置为“test.aspx”
这条路线我也有同样的问题:
routes.MapRoute("sitemap", "sitemap.xml", new { controller = "Resource", action = "Sitemap" });
奇怪的是,我对所有带有文件扩展名的路由都没有这个问题。以下路线似乎对我来说很好:
routes.MapRoute("", "favicon.ico", new { controller = "Resource", action = "Favicon" });
routes.MapRoute("", "min.css", new { controller = "Resource", action = "Css" });
routes.MapRoute("", "min.js", new { controller = "Resource", action = "JavaScript" });
routes.MapRoute("", "rsd.xml", new { controller = "MetaWeblog", action = "Rsd" });
.aspx 和 .xml 扩展名有什么我应该注意的吗?这可能是 IIS 问题吗?有没有比仅使用RouteDebugger更好的调试方法?