如何使用knockout js在Web Api结果中读取Json数据

时间:2013-05-17 11:27:35

标签: json asp.net-mvc-4 knockout.js asp.net-web-api

我在这些项目中使用WebApi返回了Result.items一个项目是JsonData如何使用我的MVC应用程序的Knockout.js读取jsonData

我在视图中尝试了如下

 <ul id="modelView" class="modelList" data-bind="foreach: modelItemList">
        <li class="modelListItem" style="border: solid" data-bind="css: { selected: $data == $root.selectedItem() }">
            <span data-bind="text: $data.ComponentName"></span>
            <ul>
                  <li class="modelList" data-bind="foreach: data.JsonData">
                    <span data-bind="text: data.ColumnName"></span>
                </li>
            </ul>

        </li>

我的modelItemList对象如下,它是DashBoardComponent

的列表
public class DashBoardComponent
{
    public int ComponentId { get; set; }
    public string ComponentName { get; set; }
    public string ComponentType { get; set; }
    public string JsonData { get; set; }
}

我的jsonData是DashBoardComponentColumn对象列表

public class DashBoardComponentColumn
{
    public int ColumnId { get; set; }
    public string ColumnName { get; set; }
    public string ColumnType { get; set; }
}

然后我的问题如何阅读jsondata,我正在尝试如上,但它只产生一个组件。 如何使用knockout js读取数据

1 个答案:

答案 0 :(得分:0)

似乎JsonData是一个字符串,而不是一个列表。因此,.NET json序列化程序不会将其转换为json列表。如果json数据确实是任何事物的列表,则应将其实例化为List。