Как правильно закодировать URL-адрес, содержащий амперсанд в ASP.NET?

Как правильно закодировать следующий URL?

http://mysite/myapp/content/Documents/Opening Leave Case for Supervisors-WC&TW.pdf

Когда я просматриваю URL-адрес после кодирования URL-адреса имени файла, я получаю эту ошибку:

«Модуль фильтрации запросов настроен на отклонение запроса, содержащего двойную управляющую последовательность».

Я уверен, что проблема связана с амперсандом в имени файла, но я не уверен, как с этим справиться.

Вот что у меня есть до сих пор (это не работает):

string.Concat( "~/Content/Documents/", HttpUtility.UrlEncode( ContentLocation ) );

person Vance Smith    schedule 30.07.2014    source источник
comment
возможный дубликат экранирования амперсанда в URL   -  person chue x    schedule 30.07.2014
comment
Откуда в коде вы получили ошибку? (Я уверен, что это не было напрямую из кодировки URL.)   -  person Jashaszun    schedule 30.07.2014
comment
Jashaszun - я обновил свой вопрос, указав более подробную информацию о том, как я генерирую ошибку.   -  person Vance Smith    schedule 30.07.2014


Ответы (1)


Вы можете попробовать HttpUtility.UrlPathEncode, который преобразует пробелы в «% 20» вместо «+». В остальном я не вижу ничего плохого в том, что вы делаете. http://msdn.microsoft.com/en-us/library/system.web.httputility.urlpathencode(v=vs.110).aspx

Также вам нужно опубликовать контекст, в котором возникает эта ошибка, потому что ошибка явно не возникает при преобразовании.

person Christopher Bales    schedule 30.07.2014