尝试路由以“。”结尾的路径时出现问题

时间:2009-06-03 00:38:26

标签: asp.net-mvc asp.net-mvc-routing

我正在尝试路由这样的路径:

http://www.wikipediamaze.com/wiki/Washington,_D.C.

路由框架没有将其作为有效路由选择并给我一个“无法找到资源”错误。有谁知道我怎么能解决这个问题?它甚至没有进入我的控制器工厂,所以就好像它甚至不能将它识别为路线或者寻找实际文件。

我对类似的路线没有任何问题:

http://www.wikipediamaze.com/wiki/United_States
http://www.wikipediamaze.com/wiki/Canadian_Bacon_(film)

但是我随时以'。'结束网址。它没有路由它。如果我这样做有效:

http://www.wikipediamaze.com/wiki/?topic=Washington,_D.C.

我设置的路线如下:

routes.MapRoute(
    "wiki",
    "wiki/{topic}",
    new { controller = "game", action = "continue", topic = "" }
);

1 个答案:

答案 0 :(得分:0)

点被解释为文件扩展名的开头,如

mypage.mvc or index.aspx

我不知道如何解决它的第一个线索,虽然形式

http://www.wikipediamaze.com/wiki/?topic=Washington,_D.C.

对我来说非常清晰和简洁。这种形式有效,因为MVC自动知道一个问号后面跟着一个命名参数,而不是另一个部分路径。