2017-09-10 12 views
0

我想將類型字符串列表推入js腳本的值字典中。 Js dictionary應該包含關鍵的DateTime和List作爲一個值。將推送列表<string>轉換爲javascript中的字典值

@foreach (KeyValuePair<DateTime, List<string>> item in Model.AssignedAttractions) 
{ 
    <script type="text/javascript"> 
     var dictionary = []; 

     $(function() { 
      dictionary.push({ 
       key: @item.Key.ToShortDateString(), 
       value: @item.Value.ToArray(), 
      }); 
     }); 
    </script> 
} 

提出的解決方案value: @item.Value.ToArray()不起作用。

+0

嘗試,如果這個工程'@ Html.Raw(JSON。 Serialize(item.Value))' – adiga

+0

它應該在Razor View中工作嗎?它給我看Json不包含定義Serialize – maciejka

+0

在你的視圖頂部添加'@using Newtonsoft.Json' – adiga

回答

1

@using Newtonsoft.Json添加到您的View。然後,

dictionary.push({ 
    key: @item.Key.ToShortDateString(), 
    value: @Html.Raw(JsonConvert.SerializeObject(item.Value)), 
}); 

JsonConvert.SerializeObject你的C#對象轉換爲一個JSON字符串

你也可以避免像這樣的循環:

@Html.Raw(JsonConvert.SerializeObject(Model.AssignedAttractions.Select(a => new { key = a.Key.ToShortDateString(), value = a.Value })));