データは、ViewBag.JobList
HTML ページの生成時にのみ認識されます。これを外部の JavaScript ファイルに含めるには、再計算ViewBag.JobList
して動的 JavaScript ファイルの一部として提供する別の ASP.NET リソースが必要です。これはかなり非効率的です。
代わりに、URL で行っていることを行います。DOM を介してデータを渡します。スクリプト ブロックの代わりに通常の DOM に書き込んでいる場合、生の出力はもう必要ありません (*)。通常の HTML エスケープは問題ありません。
<script
id="do_stuff_script" src="do_stuff.js"
data-array="@Json.Encode(ViewBag.JobList)"
></script>
...
var array = $('#do_stuff_script').data('array');
// jQuery hack - equivalent to JSON.parse($('#do_stuff_script').attr('data-array'));
</script
(実際には、生の出力は、使用している JSON エンコーダーとエスケープすることを選択したかどうかによって、セキュリティ バグであった可能性があります\u003C/script
。十分に理解された HTML エンコーディング要件を使用して HTML に書き込むことは、良い考えです。このような問題も回避します。)