в гиперссылке, как запросить экранирующие значения строки? - PullRequest
1 голос
/ 07 марта 2012

У меня есть гиперссылка в GridView, которая имеет DataNavigateUrlFormatString="blahblah/dostuff.aspx?id={0}". Но затем я натолкнулся на случай, когда поле, заменяющее {0}, имеет знак плюс. Он не экранирован для строки запроса, поэтому теперь он выглядит как пробел, а не как плюс.

Я полагаю, что подобные проблемы возникнут, если они будут включать амперсанды, знаки равенства или знаки процента.

Q: Есть ли способ сделать экранирование строки запроса для параметра?

Полагаю, я мог бы превратить его в TemplateField и Eval. В лучшем случае это грязно и безобразно. Это похоже на проблему, которая возникает постоянно. Есть ли чистый способ сделать побег?

1 Ответ

1 голос
/ 07 марта 2012

После небольшого поиска я пришел к выводу, что простого решения этой проблемы не существует.Вы можете использовать Eval без поля шаблона для генерации URL-адреса напрямую.Некоторые предполагают, что вы обрабатываете событие RowDataBound, находите правильный столбец и исправляете URL, но мне это кажется крайне уродливым решением.

Самое чистое решение, требующее большой работы, - это создать класс с единственнымцель кормить GridView (вы даже можете поместить его непосредственно в код позади) и кодировать свойства в коде C # в коде позади.Это похоже на создание ViewModel в MVC просто для подачи определенного представления.

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