ac# MVC 3 カミソリ ページに次のコードがあり、シリアル化されたデータを KnockoutJs の JavaScript 変数に渡しています。
@{
var listData = new JavaScriptSerializer().Serialize(Model.ListItems);
var pagerData = new JavaScriptSerializer().Serialize(Model.Pager);
}
// additional code
<script type="text/javascript" >
var ListData = @(Html.Raw(listData)); // <-- Syntax Error here
var PagerData = @(Html.Raw(pagerData)); // <-- Syntax Error here
// additional js code
</script>
VS 2012 にアップグレードした後、上記の Html.Raw 行の最後の javascript セミコロンの後にエラーの波線が表示されます。プロジェクトは準拠していますが、VS 2012 は各行のエラー リストに「構文エラー」を表示します。セミコロンがない場合、javascript は「構文エラー」も表示します。
このコードは、以前のバージョンでは問題なく動作しました。これは VS 2012 パーサーのバグですか? また、生成されたエラーを回避する方法はありますか?
編集 この問題を見た人はいますか? 以下は、同じ問題を新しいページに分離した簡略版です。ListData 行の末尾にセミコロンを追加すると、javascript 構文エラーが発生します。セミコロンがないと、次の行になります。これは、VS2010 と VS2012 の間の JavaScript コンパイラのバグですか?
@{
var listData = "test";
var pagerData = "test2";
}
<script type="text/javascript" >
var ListData = @(Html.Raw(listData))
var PagerData = @(Html.Raw(pagerData))
</script>