WebMatrix使用UrlRouting提供404

时间:2012-03-21 03:08:50

标签: webmatrix

我一直在尝试关注WebMatrix如何进行URL路由的这两个链接 http://www.mikesdotnetting.com/Article/165/WebMatrix-URLs-UrlData-and-Routing-for-SEO http://www.asp.net/web-pages/tutorials/working-with-pages/18-customizing-site-wide-behavior

根据我的理解,对于像http://localhost:44893/a/xyz

这样的事情

WebMatrix将首先获取文件名/a/xyz.cshtml,如果找不到,那么它将检查/a.cshtml,如果找不到,那么它将检查/a/default.cshtml

我在WebMatrix 2 Beta(3/5刷新)中创建了一个空站点。我创建了一个文件夹名称a并在其中创建了一个default.cshtml文件。

如果我转到http://localhost:44893/a,我会获得默认页面,但如果我转到http://localhost:44893/a/xyz,我会得到

HTTP错误404.0 - 未找到 您要查找的资源已被删除,名称已更改或暂时不可用

模块IIS Web核心 通知MapRequestHandler 处理程序StaticFile 错误代码0x80070002 请求的网址http://localhost:44893/a/xyz 物理路径C:\ Code \ Test \ a \ xyz 登录方法匿名 登录用户匿名

有什么我不想设置的吗?

1 个答案:

答案 0 :(得分:1)

你错过了文章的这一部分:

  

如果在搜索文件期间找不到匹配项,网页将会   尝试找到默认文档。这两个默认   工作的文件是default.cshtml和index.cshtml   订购。但是,此搜索执行一次,并假设为   URL完全是文件路径,不包含UrlData。

内置路由系统将始终假定URL表示文件路径。默认文档发挥作用的唯一时间是系统已确定/ xyz.cshtml不存在,因此尝试确定xyz是否是包含默认文档的文件夹。如果/ xyz / default.cshtml(或index.cshtml)不存在,则在尝试将此特定URL与文件路径匹配时,不会再尝试查找默认文档。