Я использую VS2010, MVC3.
У меня есть следующий скрипт jquery, чтобы, после нажатия кнопки, получить ActionResult в потоке контроллера pdf-версии страницы в новом окне.
Однако вот что происходит:
Когда страница сначала отображается, я получаю оповещения: «in hereb1» и правильное значение URL для actionUrl.
При первом нажатии на кнопку я получаю оповещения «в hereb2» и «undefined» в качестве значения для URL, и открывается новое окно с ошибкой для неопределенного ресурса.
В третий раз, когда я нажимаю на кнопку, я получаю оповещения "в hereb2" и правильное значение URL (такое же значение, как actionUrl), и открывается новое окно с ожидаемым результатом. Нет ошибок.
Почему первый клик не имеет доступа к правильному значению actionUrl?
<script type="text/javascript">
$(document).ready(function () {
alert("in hereb1");
var actionUrl = '@MvcHtmlString.Create(Html.BuildUrlFromExpressionForAreas<MyController>(c => c.GeneratePdf(Request.Url.ToString())))';
alert(actionUrl);
$("#btnPdf").click(function () {
var url = $(this).attr("href");
$(this).attr("href", actionUrl);
alert("in hereb2");
alert(url);
var win = window.open(url, "PdfVersion");
win.focus();
return false;
});
});
</script>
Спасибо