MVC4 Razor запуталась насчет скобок

У меня довольно простой вопрос для все эксперты по 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>
}
10
задан Dave Markle 20 February 2012 в 22:59
поделиться