Заставить бритву не избегать URL - PullRequest
7 голосов
/ 20 октября 2011

Автопробег Бритвы портит меня.Я создаю URL для подачи в метод $ .load jquery:

<script>
$("#baz").load('@Url.Action("Method", new { foo=Model.Foo, bar=Model.Bar })');
<script>

Проблема в том, что URL выходит из экранированного сценария (& == &)

<script>
$("#baz").load('Method?foo=Foo&amp;bar=Bar');
<script>

Таким образом, MVC захлебывается запросом, говоря, что параметр bar не был предоставлен.

Я пытался обернуть вызов в @ Html.Raw, но, похоже, он все еще не содержит URL.Вернувшись на планету aspx, я бы просто сделал <% = вместо <%: но, очевидно, это не хорошо здесь :).Я также попытался поместить параметры в объект данных для $ .load, но это, похоже, вызывает публикацию, а не получение (и я хочу получить здесь). </p>

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

Есть мысли?

1 Ответ

14 голосов
/ 20 октября 2011

Я только что выполнил тест, и амперсанд не был закодирован в моем тесте с использованием Html.Raw, например:

@Html.Raw(Url.Action("Method", new { foo = Model.Foo, bar = Model.Bar }))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...