题:
我正在创建一个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
偶然地,还有一个(标题为“斜线”):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中的<system.web>部分
(在这里找到:http : //www.christophercrooker.com/use-any-characters-you-want-in-your-urls-with-aspnet-4-and-iis)