3

かみそりで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行(;期待される)
  • }); 「)」の行(予期しないトークン)
  • ]; 「]」の行(構文エラー)

VisualStudio2012が私のかみそりコードの多くを受け入れているようには見えません。たぶん、私がR#を使用していることも注目に値します(それが問題である場合)。

なぜこれらすべてのエラーメッセージが発生するのかという明らかな質問に加えて、私がこれを実行しようとしていることをVisualStudioが実際に受け入れる理由も疑問に思います。

これらすべてのコンパイルエラー、およびVisual Studioは実際にそれを実行しますか?なんで?

コードを実行すると、次のエラーが発生します。

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

fileID行が強調表示されます。

かみそりはおそらく本当に良いことですが、これまでのところ、それは私の深刻な頭痛の種になっています。多分私はただ愚かなことをしているだけです...

4

1 に答える 1

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> 
于 2012-10-15T18:42:28.833 に答える