9

好吧,我认为 ASP.NET MVC 团队在 asp.net mvc 4 的开发人员预览版中发布了一个非常重要的错误,或者我正在做一些愚蠢的事情......这是重现的问题和步骤。

  1. 创建一个新的 MVC 4 移动应用程序
  2. 在布局中创建一个新部分(例如 @RenderSection("head",false))
  3. 在控制器操作中,只需将 Message 扔到 ViewBag 中
  4. 然后在使用主布局的视图中,添加以下代码。
@section head {
    $(function() { 
        var newVariableName = "@(ViewBag.Message)";
    });
}

您会注意到,razor 解析器实际上认为该部分已经完成,因为 jquery on dom 加载的结束大括号而不是该部分的结束大括号。我在 asp.net MVC 3 应用程序中尝试了完全相同的代码,并且没有问题。

有没有其他人在 ASP.NET MVC 4 Developer Preview 中遇到过这个错误?

4

2 回答 2

6

解决此问题的一个快速技巧是在 java 脚本周围使用 <text> 块</text>。在 ASP.NET MVC 团队解决此错误之前,可能会出现以下情况。

@{
<text>
    $(function()
    {
        var newVariableName = "@(ViewBag.Message)";
    });
</text>
}
于 2011-12-19T19:19:11.967 回答
0

如上所述,在您的 cshtml 文件中尝试此操作...

@section head {
@{
    function JSMeth1()
    {
        // doing your stuff, razor parser wont suck
    }
}}
于 2011-12-19T23:18:30.693 回答