Разрешить плюсик в URL с MVC 3 - PullRequest
3 голосов
/ 30 сентября 2011

Мне нужно разрешить знак "+" для определенных действий в контроллере. Я создаю механизм фильтрации тегов, который позволяет что-то вроде этого (например, stackoverflow): / Stuff / Tagged / tag-name-1 + tag-name-2 + other-tag

Я знаю, что могу установить allowDoubleEscaping="true" в файле web.config, но это не лучший способ по соображениям безопасности.

Я предполагаю, что есть способ использовать, возможно, пользовательский файлер или какой-то другой реестр в global.asax?

Ответы [ 3 ]

3 голосов
/ 30 сентября 2011

StackOverflow, вероятно, рассматривает + как пробел. Скорее всего, они отображают маршрут /Stuff/Tagged/{*tags} и звонят string.split() по тегам. Это на самом деле прекрасно работает, если вы не разрешаете пробелы в своих тегах.

0 голосов
/ 06 октября 2013

Вы можете использовать простую замену:

string url = Url.Action("Index", "YourController");
url = url.Replace("%2b", "+");
0 голосов
/ 30 сентября 2011

+ означает пробел в URL. Вы должны URL кодировать их:

/Stuff/Tagged/tag-name-1%2Btag-name-2%2Bother-tag
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...