Как запретить кодировке HTML на стороне клиента с помощью jsRender кодировать уже закодированную строку с сервера - PullRequest
0 голосов
/ 12 марта 2019

Это сложно объяснить, поэтому, пожалуйста, потерпите меня. Я использую комбинацию кодирования на стороне сервера с использованием метода ASP.NET HttpUtility.HtmlEncode() и кодирования на стороне клиента с помощью jsRender (кстати, потрясающей библиотеки рендеринга.)

Когда я использую один из них, он работает нормально. Символ < станет &lt;, но он все равно будет отображаться как < в браузере, что хорошо, потому что иногда существуют законные случаи, когда эти символы используются и должны отображаться пользователю правильно, но не выполняются браузер

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

Есть ли способ кодировать его в обоих местах и ​​при этом отображать в браузере как не кодированную строку?

1 Ответ

0 голосов
/ 13 марта 2019

В итоге я решил эту проблему, создав собственный тэг jsRender с пользовательской функцией рендеринга, которая проверяет, закодирована ли строка, и оставит ли она ее в покое, иначе она будет ее кодировать.

Вот ссылка для создания пользовательских тегов Документация по пользовательским тегам jsRedner

...