推送列表<;字符串>;在javascript中转换为字典值
我想将类型字符串列表推送到js脚本中的值字典中。 Js字典应该包含键DateTime,并作为值列出推送列表<;字符串>;在javascript中转换为字典值,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,我想将类型字符串列表推送到js脚本中的值字典中。 Js字典应该包含键DateTime,并作为值列出 @foreach (KeyValuePair<DateTime, List<string>> item in Model.AssignedAttractions) { <script type="text/javascript"> var dictionary = []; $(function () {
@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>
}
@foreach(模型中的KeyValuePair项。分配的属性)
{
var字典=[];
$(函数(){
字典推送({
key:@item.key.ToShortDateString(),
值:@item.value.ToArray(),
});
});
}
提供的解决方案
value:@item.value.ToArray()
不起作用。使用Newtonsoft.Json将@添加到视图中。然后呢,
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 })));
试一试,如果它能工作@Html.Raw(Json.Serialize(item.Value))
它能在Razor视图中工作吗?它显示Json不包含定义,请使用Newtonsoft.Json将@添加到视图顶部添加导入后无更改。应该从System.Web.Helpers导入Json吗?抱歉,请尝试@Html.Raw(JsonConvert.SerializeObject(item.Value))