URL-адреса с косой чертой в параметре?

Вопрос:

Я создаю вики-программу, в основном клон 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://en.wikipedia.org/wiki/Wikipedia:Naming_conventions_ (Technical_restrictions) #Forbidden_characters

Изменить:
Чтобы разрешить * и &, поместите


в раздел в файле web.config

(находится здесь: http://www.christophercrooker.com/use-any-characters-you -want-in-your-urls-with-aspnet-4-and-iis )

63
задан Erik Philips 24 July 2014 в 15:30
поделиться