2012-10-15 73 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>