Передача & через сгенерированный JavaScript JavaScript? - PullRequest
1 голос
/ 11 ноября 2011

У меня есть эта строка кода, которая выполняется при изменении ddl на моей странице -

location.href = '@Url.Action("Edit", "Page", new { UserId = (string)null })/' + '@ViewBag.userId' + '?status=' + '@ViewBag.status' + '&pageNo=@ViewBag.PageNo';

Ссылка работала нормально только с символом &, но после проверки валидатора разметки, http://validator.w3.org/check, он предложил заменить & на &и я сделал это в приведенной выше строке кода.Теперь, когда я меняю ddl & буквально появляется в URL, и страница не работает должным образом (как отфильтровано ddl).

<script type="text/javascript">
$(document).ready(function () {
 $(".ddl").change(function () { changePage(); });

 }); 

    function changePage() {
        location.href = '@Url.Action("Edit", "Page", new { UserId = (string)null })/' + '@ViewBag.userId' + '?status=' + '@ViewBag.status' + '&amp;pageNo=@ViewBag.PageNo';
}

</script>

Может кто-нибудь сказать мне, что я делаю неправильно

Ответы [ 2 ]

2 голосов
/ 11 ноября 2011

Одна из самых простых вещей, о которых я могу подумать: вы можете поместить свой код javascript во внешний javascript и снова выполнить проверку w3c.

1 голос
/ 11 ноября 2011

Основная проблема заключается в том, что вы используете XHTML, используя его как text/html

Если документ был проанализирован как XML, вам нужно представить & как &amp; внутри элемента скрипта, но, поскольку вы заявляете, что документ является HTML, вы не можете этого сделать.

См. рекомендации по совместимости либо

  • держать JS ввнешний файл
  • оберните его маркерами CDATA
  • используйте HTML вместо XHTML
...