Проблема заключается в том, что размещение переменной C # в JS-функции внутри @Section приводит к некорректному JavaScript (только в MVC 4).
В функции JS в MVC 3 все выполняется как положено.
@section test {
<script type="text/javascript">
$(function () {
alert(@DateTime.Now);
});
</script>
}
Возьмите этот же код и поместите его в приложение MVC4, и вы получите искаженный JS.
HTML-код на странице будет отображать следующее:
<script type="text/javascript">
$(function () {
alert(12/27/2011 11:04:04 AM);
и HTML будет излучать
); }
Обратите внимание, что закрывающий тег сценария не создается.
Похоже, закрывающая фигурная скобка в функции JS перепутана с закрывающей фигурной скобкой в Razor.
Обратите внимание, что я также объявляю RenderSection ("test", false ") в моем файле _Layout.cshtml.