Ответ 1
Ну, вам нужно убедиться, что все ваши материалы закодированы правильно, и я предполагаю, что вы этого не сделали. Нам нужно будет увидеть гораздо больше вашей страницы, чтобы определить это. IE, вероятно, обнаруживает, что вы сделали это неправильно и попытались исправить его для вас, в то время как Chrome не исправляет вашу ошибку.
Это становится довольно сложным в отношении правил того, когда вы это делаете, и не нужно избегать вещей. Это на HTML-странице, и все знают, что вам нужно убежать и на HTML-страницах, но в теге script, так вам или вам не нужно бежать? Ну, это зависит от того, есть ли тэг script в элементе CDATA или нет.
Простое решение - избегать этого. Поместите URL-адрес, который вы хотите переключить, на элемент [name = a] в качестве тега данных, например:
<sometag name='a' data-urlprefix='@(this.Model.SortUri)@(this.Model.SortUri.IndexOf('?') == -1 ? "?" : "&")a='>stuff</sometag>
Затем в вашем javascript:
$("[name=a]").change(function () {
window.location.href = $(this).data('urlprefix')+encodeURIComponent(this.value);
});
Это также помогает переносить материал обработки сервера только на части HTML, так что вы можете поместить javascript в его собственный файл, который вы все равно должны делать.
- Обратите внимание, что вы должны быть urlencoding
this.value
, если это еще не так, поэтому я сделал это. Если он уже закодирован, его можно безопасно удалить. Я также изменил window.location на window.location.href, потому что window.location может иногда делать странные вещи - кодирование в некоторых браузерах, но не на других и т.д.