【发布时间】:2011-09-13 19:07:24
【问题描述】:
问题:
我正在创建一个 wiki 软件,基本上是 wikipedia/mediawiki 的克隆,但在 ASP.NET MVC 中(MVC 是重点,所以不推荐我使用ScrewTurn)。
现在我有一个问题:
我使用此路由映射来路由如下 URL:
http://en.wikipedia.org/wiki/ASP.NET
routes.MapRoute(
"Wiki", // Routenname
//"{controller}/{action}/{id}", // URL mit Parametern
"wiki/{id}", // URL mit Parametern
new { controller = "Wiki", action = "dbLookup", id = UrlParameter.Optional } // Parameterstandardwerte
);
现在我突然想到,可能会有像“AS/400”这样的标题:
http://en.wikipedia.org/wiki/AS/400
顺便说一句,还有这个(标题'Slash'):
http://en.wikipedia.org/wiki//
还有这个:
http://en.wikipedia.org/wiki//dev/null
总的来说,维基百科似乎有一个有趣的标题列表,如下所示: http://en.wikipedia.org/wiki/Wikipedia:Articles_with_slashes_in_title
如何正确地制作类似这条路线的路线?
编辑:
类似的东西:
如果 URL 以 /Wiki/ 开头,并且不以 /wiki/Edit/ 开头
(但不是 /Wiki/Edit)
然后将 URL 的所有其余部分作为 Id 传递。
编辑:
嗯,又是一个问题:
我该如何路由这个:
http://en.wikipedia.org/wiki/C&A
维基百科可以...
编辑:
根据 wikipedia,由于与 wikitext 语法冲突,只有以下字符不能用于页面标题(DISPLAYTITLE 也不支持):
# < > [ ] | { }
编辑:
要允许 * 和 &,放
<httpRuntime requestPathInvalidCharacters="" />
进入文件 web.config 中的
(在这里找到:http://www.christophercrooker.com/use-any-characters-you-want-in-your-urls-with-aspnet-4-and-iis)
【问题讨论】:
-
您能否将您的路由参数字符更改为“更常见”的字符,例如问号或逗号...标题中的某些内容无效?
-
ASP.NET MVC 路由不是您唯一的问题。尝试“LPT”、“SQL*plus”、“US$”、“C#”等主题。其中很多会被 IIS 捕获。你最好考虑逃离其中的一些。
标签: asp.net-mvc asp.net-mvc-routing