Зарезервированные слова маршрутизации ASP.Net MVC3?

У меня есть приложение 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. Кто-нибудь знает, так ли это и есть ли другие зарезервированные слова, которых следует избегать?


person Ron    schedule 31.05.2011    source источник


Ответы (2)


Да, 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/

person aligray    schedule 31.05.2011

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

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

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

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

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

person GorkemHalulu    schedule 24.01.2014