Razor + javascript语法错误遇到“,”

时间:2012-10-15 18:27:40

标签: razor

我尝试使用razor生成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行,在最后一个引号后(;预期)
  • }); “)”(意外令牌)
  • The ;; line on“]”(语法错误)

看起来像visual studio 2012接受了很多我的剃刀代码。也许值得注意的是我正在使用R#(如果这是一个问题)。

除了显而易见的问题之外,为什么会出现所有这些错误消息,我还想知道是什么让visual studio真正接受我尝试运行这个。

所有那些编译错误,而visual studio实际上运行它?为什么呢?

当我运行代码时,出现以下错误:

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

并突出显示fileID行。

Razor可能是一件非常好的事情,但是到目前为止它给我带来了一些严重的麻烦。也许我只是做些傻事......

1 个答案:

答案 0 :(得分: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>