Как сделать так, чтобы asp.net автоматически не убегал от косой черты в URL? - PullRequest
7 голосов
/ 17 марта 2011

С таким URL-адресом, как http://abc.com/myid/ab%2fcd (где% 2f - экранированная косая черта), asp.net будет удалять% 2f так, что с точки зрения моего приложения (и с точки зрения asp.net mvc) URL-адрес будет : http://abc.com/myid/ab/cd

Поскольку мое приложение использует asp.net mvc, это поведение может легко вызвать проблемы с маршрутизацией, если я хочу, чтобы маршрут указывал что-то вроде "/ myid / {id}", так как удаление из asp.net приведет к тому, что этот маршрут не будет совпадать .

В соответствии с ответом на этот вопрос: косая черта в URL-адресе и в соответствии с этой страницей msdn: http://msdn.microsoft.com/en-us/library/ee656542.aspx решение (в .Net 4.0) заключается в следующем ваш web.config:

<uri>
    <schemeSettings>
        <add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes"/>
    </schemeSettings>
</uri>   

Но я не могу заставить его работать - "% 2f" по-прежнему автоматически выводится в "/". Кто-нибудь знает, почему настройка конфигурации может не работать для меня, или есть другие предложения?

1 Ответ

5 голосов
/ 18 марта 2011

Простое решение - использовать универсальный токен, например, {controller}/{action}/{*id}

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