Как замаскировать символ тильды (~) в таблице маршрутизации C # MVC? - PullRequest
0 голосов
/ 05 июня 2010

Я перемещаю свой домашний веб-сайт в MVC, и у меня возникли проблемы с маршрутизацией URL. Сайт уже обслуживает несколько ссылок, которые содержат символ тильды (~) в пути; что-то вроде

http://<root>.../~files/... 
http://<root>.../~ws/... 

и я хочу, чтобы каждый из них обрабатывался отдельным контроллером, таким как filesController, wsController, поэтому моя таблица маршрутов выглядит как

routes.MapRoute( "files", "~files/{*prms}", new { controller = "files", action = "index", prms = "" } );
routes.MapRoute( "ws", "~ws/{*prms}", new { controller = "ws", action = "index", prms = "" } );

...

но когда я пытаюсь получить результат, я получаю сообщение об ошибке «URL маршрута не может начинаться с символа« / »или« ~ »и не может содержать«? » характер. "

Как я понимаю, эти символы имеют особое значение в ASP.net, но возможно ли их как-то замаскировать, хотя бы тильду? Должен ли я сам анализировать и маршрутизировать запросы? Как лучше всего обращаться с такими URL-адресами?

1 Ответ

0 голосов
/ 07 июня 2010

Я не вижу, чтобы вы могли это сделать. В ASP.NET символ тильды представляет корень приложения, и внутренние маршруты будут использовать его для перебазирования своих URI. Возможно, вы сможете сделать это на более высоком уровне (например, модуль маршрутизации URL для IIS7) и переназначить URL-адреса, прежде чем его MVC?

...