我将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的新手,所以如果你需要更多信息,我很乐意更新这篇文章。这是希望格式化至少是可读的。