我已将MVC3 Web应用程序添加到包含普通旧html文件的现有网站。当你请求一个特定的文件时这很好用但是我没想到的是通过更改站点使用.Net 4它不再注意到IIS中的默认文件设置(在这种情况下是IIS 6)。例如,我可以请求www.something.com/index.html,但如果我要求www.something.com,我会收到资源未找到错误页面。 Global.asax中是否有MapRoute我可以指定将站点路径URL映射到index.html?
答案 0 :(得分:6)
看起来有些事情发生了变化,我不得不这样做
routes.IgnoreRoute("");
ASP.NET抱怨以“/”
开头的路线答案 1 :(得分:3)
routes.IgnoreRoute("");
允许请求进入站点配置中定义的默认文档。我在这个项目中只有一个控制器和路由,用于来自客户端的ajax请求。我希望网站的其余部分继续像它只是普通的HTML一样。使用 routes.IgnoreRoute(“”),MVC3应用程序会忽略允许IIS返回默认文档的请求。谢谢大家的建议。
答案 2 :(得分:2)
你可以尝试定义像这样的规则
routes.MapRoute("", "index.html", new { controller = "Home", action = "Index" });
但我担心在IIS 6中你必须处理Wild card mapping
。
答案 3 :(得分:1)
这是正常的。 IIS 6.0不支持无扩展名网址。根据Phil Haack的说明,你需要一个wildcard mapping。