Нет, обещаем никогда URL-адреса с жестким кодом, которые зависят от маршрута, как вы делали это в своем файле JavaScript.Это плохо, плохо, плохо.Я говорил, что это плохо?
Это слишком много JavaScript в представлении (это трата пропускной способности).Вы можете попробовать объявление глобальной переменной javascript:
<script type="text/javascript">
var quoteUrl = '<%: Url.Action("create", "quote", new { id = Model.Book.BookID }) %>';
</script>
и в вашем файле javascript:
$(function () {
$('#newQuoteLink').click(function () {
$('#newQuoteLink').hide();
$('#newQuoteDiv').load(quoteUrl);
return false;
});
});
Это путь, который я лично не выбрал бы.По-прежнему тег script
с объявлением глобальной переменной javascript.Все еще трата.
Вещи становятся еще красивее, как это (и именно в этот момент вы понимаете реальную силу ненавязчивого JavaScript):
<%: Html.ActionLink("Foo Bar Beer Link Text", "create", "quote",
new { id = Model.Book.BookID }, new { id = "newQuoteLink" }) %>
и в вашем внешний JavaScript:
$(function () {
$('#newQuoteLink').click(function () {
$('#newQuoteLink').hide();
$('#newQuoteDiv').load(this.href);
return false;
});
});