ASP.NET MVC 4 - @Section中Javascript函数内的Razor导致范围错误

Sco*_*tes 5 asp.net-mvc razor

问题是在@Section中的JS函数中放置一个C#变量会产生不正确的javascript(仅在MVC 4中).

在MVC 3中的JS函数中,一切都按预期执行.

@section test {

<script type="text/javascript">
    $(function () {
        alert(@DateTime.Now);
    });
</script>
} 
Run Code Online (Sandbox Code Playgroud)

使用完全相同的代码并将其放在MVC4应用程序中,您将得到格式错误的JS.

页面上的HTML实际上将呈现以下内容:

<script type="text/javascript">
    $(function () {
        alert(12/27/2011 11:04:04 AM);
Run Code Online (Sandbox Code Playgroud)

并且html会发出

); }

请注意,不会生成结束脚本标记.

似乎JS函数中的结束大括号混淆了Razor中的结束大括号.

请注意,我还在_Layout.cshtml文件中声明了RenderSection("test",false").

Lsk*_*ski 4

回复有点旧,但我遇到了同样的问题,所以我提交了关于 Microsoft.Connect 的反馈报告,希望它应该在完整发布之前得到排序。

https://connect.microsoft.com/VisualStudio/feedback/details/720079/mvc-4-javascript-in-section-issue