2011-12-17 101 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 
    } 
}}