ASP.Net MVC3 маршрутизация зарезервированных слов? - PullRequest
9 голосов
/ 01 июня 2011

У меня есть приложение ASP.Net MVC с определенными стандартными маршрутами. Приложение редактирует метаданные для нашей базы данных. Схема URL:

http://localhost/tables/Edit/[Name of Table Here]

Вызывает функцию edit на контроллере tables и передает имя таблицы в качестве параметра id. Все таблицы работают нормально, кроме одной с именем con. Следующий URL приводит к 404:

http://localhost/tables/Edit/con

Единственное, о чем я могу думать, это то, что con должно быть каким-то зарезервированным словом относительно маршрутизации MVC. Кто-нибудь знает, так ли это и есть ли другие зарезервированные слова, которых следует избегать?

Ответы [ 2 ]

13 голосов
/ 01 июня 2011

Да, con является зарезервированным словом и поэтому не может быть помещено в маршрут MVC. Вот сообщение в блоге, описывающее обходной путь:

http://haacked.com/archive/2010/04/29/allowing-reserved-filenames-in-URLs.aspx

И еще один пост с подробным объяснением причин зарезервированных слов:

http://bitquabit.com/post/zombie-operating-systems-and-aspnet-mvc/

4 голосов
/ 24 января 2014

CON - зарезервированное слово, такое как COM1, COM2, COM3, COM4, ​​LPT1, LPT2, AUX, PRN, NUL.

Я также столкнулся с этой проблемой при использовании запроса ajax.Я решил поставить символ «-» в начале параметра, а затем заменил его в коде.

Но это было глупое решение, вы можете легко решить эту проблему, просто добавив

    <system.web>
        <httpRuntime relaxedUrlToFileSystemMapping="true"/>
         ......
    </system.web>

в ваш файл Web.config, и вы можете безопасно использовать эти слова в URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...