У меня довольно простой вопрос для всех экспертов Razor. Я пытаюсь сделать вызов jQuery $.ajax() для URL-адреса, используя Url.Content(), чтобы перевести исходный путь в корневой путь. При этом Razor немного запутывается, где находится конец моего @section. Я предпочел бы иметь возможность указывать URL-адрес в строке, но когда я это делаю, Razor считает, что конец списка параметров $.ajax() - это конец моего @section. Я использую @section, потому что хочу использовать макеты для размещения javascript в нижней части каждого файла. Почему Бритва так запуталась? Я даже пытался использовать @(Url.Content(...)), но это тоже не работает.
Кроме того, это лучший способ подойти к проблеме? Я использую предварительный просмотр ASP.NET MVC 4.
Это работает:
@section Scripts {
<script type="text/javascript">
var getMessagesUrl = '@Url.Content("~/Logging/GetMessages")';
$(document).ready(function () {
$.ajax({
url: getMessagesUrl,
dataType: 'html',
success: function (result) {
$('tbody').html(result);
}
});
});
</script>
}
Это не:
@section Scripts {
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
url: '@Url.Content("~/Logging/GetMessages")',
dataType: 'html',
success: function (result) {
$('tbody').html(result);
}
}); //Razor thinks this is the curly-brace that ends the section!
});
</script>
}