2012-10-15 72 views
3

我試圖用剃刀生成JavaScript:剃刀+ JavaScript語法錯誤的遭遇 「」

<script> 
    var slides = 
    [ 
    @foreach (var news in Model.News) 
    { 
     @:data.push(
     { 
     fileID: @(news.FileID), 
     preamble: "@(news.Preamble)", 
     img: "/Admin/News/NewsPng/@(news.NewsID)" 
     }); 
    } 
    ]; 
</script> 

我得到的語法錯誤上

  • 的FILEID線都在 「@」(意外的標記)和該行末尾的「,」(;預計)。
  • 上 「」 前同步碼線(;預期)(;預期)
  • 的IMG線,最後引號之後
  • }); 「on」)(意想不到的令牌)
  • The]; line on「]」(syntax error)

它似乎不像visual studio 2012接受我的許多剃鬚刀代碼。也許值得注意的是,我正在使用R#(如果這是一個問題)。

除了顯而易見的問題,爲什麼所有這些錯誤信息出現,我也想知道是什麼讓視覺工作室實際上接受,我試圖運行這個。

所有那些編譯錯誤,和視覺工作室其實運行它?爲什麼?

當我運行代碼,我得到以下錯誤:

CS1646: Keyword, identifier, or string expected after verbatim specifier: @ 

和FILEID行被突出顯示。

剃刀可能是一件非常好的事情,但是到目前爲止它已經給我帶來了一些嚴重的頭痛。也許我只是在做一些愚蠢的......

回答

3

嘗試<text>

<script> 
    var slides = 
    [ 
    @foreach (var news in Model.News) 
    { 
     <text> 
     data.push( 
     { 
     fileID: @(news.FileID), 
     preamble: "@(news.Preamble)", 
     img: "/Admin/News/NewsPng/@(news.NewsID)" 
     }); 
     </text> 
    } 
    ]; 
</script> 

但你的語法是錯誤的,你會在JavaScript中出現錯誤。

補充:

像這樣將工作:

<script> 
    var slides = []; 
    @foreach (var news in Model.News) 
    { 
     <text> 
     slides.push({...}); 
     </text> 
    } 
</script>