2 つの個別の JSON リストが必要なプロジェクトがあります。これは、コントローラーで JsonResult を使用できないため、クライアント側で解析する必要があることを意味します。以下を使用して、リストを Json に解析し、Newtonsoft.Jsonパッケージからビュー モデルの文字列を送信します。
Model.JsonAllActiveItems = JsonConvert.SerializeObject(Model.AllActiveItems,Formatting.None);
次に、スクリプトファイルで次のように言います。
function setActiveList(list) {
alert(list)//for test
activeList = JSON.parse(list);
};
解析コマンドの後に「Uncaught SyntaxError: Unexpected token o」というエラーが表示され続けます
JSON 文字列は次のようになります。
[{"ProductCompositions":[],"ImageName":"Item1","Version":0,"StatusInt":0,"Status":0,"Id":1},{"ProductCompositions":[],"ImageName":"Item2","Version":0,"StatusInt":1,"Status":0,"Id":2},{"ProductCompositions":[],"ImageName":"Item3","Version":0,"StatusInt":1,"Status":0,"Id":4},{"ProductCompositions":[],"ImageName":"Item2","Version":0,"StatusInt":0,"Status":0,"Id":5},{"ProductCompositions":[],"ImageName":"Item4","Version":0,"StatusInt":0,"Status":0,"Id":6},{"ProductCompositions":[],"ImageName":"Item4","Version":0,"StatusInt":0,"Status":0,"Id":7}]
何か案は?乾杯
更新:奇妙なのは、Chrome JavaScript デバッガーでは、解析コマンドの前であっても、「リスト」に正しいデータが適切に入力されていることです。ただし、次のように JSON.parse() を使用せずにテストしようとすると、リストが null のような空の文字列が表示されます。
var myString = "";
for (var i = 0; i < list.length; i++ ) {
myString += "<li>" + list[i].ImageName + "</li>";
}
document.getElementById("selected-items-comp").innerHtml = myString;