MVC Knockout绑定到ViewModel中的ViewModel列表

时间:2017-01-13 23:47:16

标签: c# json mvvm knockout.js

我将ViewModel传递给包含另一个ViewModel列表的View,例如

public class ThreadViewModel
{
    public Post post { get; set; }
    public UserStats user { get; set; }
    public List<ThreadReplyViewModel> comment { get; set; }
}

其中ThreadReplyViewModel是这样的

public class ThreadReplyViewModel
{
    public PostComment comment { get; set; }
    public UserStats user { get; set; }
}`

我的问题是如何为作为评论列表元素的ThreadReplyViewModel的“comment”属性的属性创建数据绑定。当我在ThreadViewModel中为List创建数组时,它返回类似

的内容
[{"comment":{"PropertyName":Value,...}, "user":{"PropertyName":Value,...}}]

而不是返回

[{"PropertyName":Value,...}, {"PropertyName":Value,...}]

然后我尝试使用以下内容访问这些属性值,

data-bind="text:comment.PropertyName"

data-bind="text:comment.comment.PropertyName"

我的问题似乎是当我在List上调用JsonConvert.SerializeObject而不是返回一个json字符串时,它返回一个名为json字符串的数组。我不知道如何处理json数组中的命名对象,所以我不知道如何为命名对象的属性创建数据绑定。

p.s-我对js / knockout相当新,这篇文章可能很明显,也是stackexchange的新手,所以如果你需要更多信息,我很乐意更新这篇文章。这是希望格式化至少是可读的。

0 个答案:

没有答案