C#
ビューのJS
スニペットから 2 つの配列を使用したいと考えています。そうするために、私はを使用しようとしましたJavaScriptSerializer()
が、データ配列は値を取得していません (ビューのソースは次のように表示されます):
var mydata =
<%=%>
私が遭遇したすべての例では、タグを使用して JS に C# コードを挿入しています。ASP.NET MVC 4を使用しているため、これは結果をもたらしません。したがって、次のように試しました。
<script type="text/javascript">
var mydata = @{ new JavaScriptSerializer().Serialize(Model.GetData());}
$(function () {
// Generates a chart using the mydata array
}
</script>
この構文の何が問題になっていますか? その下にヘッダーの配列を追加しようとすると、コンパイル エラーが発生します。行が終了していないという警告がありますが、;
各行の最後に追加すると、構文エラーも発生します(特定のエラーではなく、「構文エラー」のみ)。
GetData()
とのデータGetHeaders()
は次のように定義されます。
public List<int> GetData() {
return new List<int>(new[] { 4, 5, 6});
}
として返そうとしましたint[]
が、違いはありませんでした。JavaScript スニペットで C# リスト/配列を使用するにはどうすればよいですか?
編集: 不明なコンパイル エラーの画像。セミコロンを配置しないと、2 番目の構文エラーが発生しますvar
。末尾にセミコロンを追加して、行末を終了するよう提案されました。次に、以下に示すような問題があります。興味深い詳細: 通常、エラーの場所を示す赤いバーがファイルの横にありません。
つまり、スクリプトを実行すると、配列には期待値があり、すべてが正常に機能します。