【发布时间】:2014-09-16 20:36:43
【问题描述】:
我想让我的网址尽可能短,所以我正在测试不带分隔符的路由,如下所示:
routes.MapRoute(
name: "Photo",
url: "x{id}",
defaults: new { controller = "Content", action = "Photo" }
);
由于某种原因,上面的路线不起作用,我收到 404 错误:
找不到资源。
描述:HTTP 404。您正在寻找的资源(或其之一 依赖项)可能已被删除,名称已更改,或者是 暂时不可用。
但是,当我将 x 前缀更改为不同的字母时,例如 g,它工作正常。
没有冲突的路线。请问我在这里缺少什么?
编辑:
我再次看到这个问题,并且我观察到只有当 id 包含 x 时才会发生 404,即像 /xa1B2 或 /xZ9y8 这样的路由可以正常工作,但 @987654327 @失败。请问有什么想法吗?
【问题讨论】:
-
这可能是一个错误,或者你身边的东西。调试您的路线:attributerouting.net/#debugging
-
应该是
url: "x/{id}",? -
我不确定,但它可能被解释为十六进制(unicode)字符,例如 /xa1b2 in unicode char codetable.net/hex/a1b2
标签: c# asp.net-mvc asp.net-mvc-5 url-routing asp.net-mvc-routing