Вопрос:
Я создаю вики-программу, в основном клон 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
Кстати, есть еще один ( title '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.
Edit:
Хм, еще одна проблема:
Как я могу перенаправить это:
http://en.wikipedia.org/wiki/C&A
Википедия может ...
Изменить:
Согласно Википедии, из-за конфликтов с синтаксисом викитекста, в заголовках страниц нельзя использовать только следующие символы (и они не поддерживаются DISPLAYTITLE):
# < > [ ] | { }
Изменить:
Чтобы разрешить * и &, поместите
в раздел
(находится здесь: http://www.christophercrooker.com/use-any-characters-you -want-in-your-urls-with-aspnet-4-and-iis )