2011-12-17 43 views
9

嗯,我认为ASP.NET MVC团队在asp.net mvc 4的开发人员预览版中发布了一个相当重要的错误,或者我正在做一些愚蠢的事情......这是问题和重现步骤。ASP.NET MVC 4 Dev在部分中预览剃须刀错误

  1. 创建一个新的MVC 4移动应用
  2. 创建布局一个新的部分(例如,@RenderSection(“头”,FALSE))
  3. 在控制器动作只是抛出一个消息到ViewBag
  4. 然后在使用主布局的视图中,在下面添加以下代码。
@section head { 
    $(function() { 
     var newVariableName = "@(ViewBag.Message)"; 
    }); 
} 

你会发现,剃刀解析器实际上认为,部分已完成加载结束括号,而不是部分的结束支具DOM jquery的。我在asp.net MVC 3应用程序中尝试了完全相同的代码,并且没有任何问题。

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

+0

是的,我!你有没有完成的JavaScript代码作为输出,对吧? – tugberk 2011-12-17 15:03:32

+0

是的,它基本上认为它终止。这个开发人员预览是如何得到发布的,这个荒谬的bug?另外,没有人发布关于它的东西! – 2011-12-17 15:34:38

+0

我实际上试图发布这个,但我一直认为问题出在我的代码上(我的javascript代码有点复杂)。我的意思是这是开发者预览,你不能期待太多。此外,您没有上线许可证。你知道的,对吧?如果dev。预览会打击你的机器,它在你身上,而不是在MSFT上。 – tugberk 2011-12-17 15:48:52

回答

6

解决此问题的一个简单方法是在java脚本周围使用< text> blocks </text>。这是ASP.NET MVC团队解决此错误之前的样子。

@{ 
<text> 
    $(function() 
    { 
     var newVariableName = "@(ViewBag.Message)"; 
    }); 
</text> 
} 
0

正如上面提到的,试试这个在您的CSHTML文件...

@section head { 
@{ 
    function JSMeth1() 
    { 
     // doing your stuff, razor parser wont suck 
    } 
}}