У меня довольно простой вопрос для все эксперты по Razor. Я пытаюсь выполнить вызов jQuery $ .ajax () для URL-адреса, используя Url.Content () для преобразования пути, относящегося к дому, в путь относительно корня. При этом Razor немного запутался в том, где находится конец моего @section. Я бы предпочел иметь возможность указывать URL-адрес в строке, но когда я это делаю, Razor думает, что конец списка параметров $ .ajax () - это конец моего @section. Я использую @section, потому что хочу использовать макеты для размещения моего javascript внизу каждого файла. Почему Razor так запутался? Я даже пробовал использовать @ (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>
}