Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC淘汰绑定到ViewModel中的ViewModels列表_C#_Json_Mvvm_Knockout.js - Fatal编程技术网

C# MVC淘汰绑定到ViewModel中的ViewModels列表

C# MVC淘汰绑定到ViewModel中的ViewModels列表,c#,json,mvvm,knockout.js,C#,Json,Mvvm,Knockout.js,我将一个ViewModel传递给一个视图,该视图包含另一个ViewModel的列表,例如 public class ThreadViewModel { public Post post { get; set; } public UserStats user { get; set; } public List<ThreadReplyViewModel> comment { get; set; } } 我的问题是如何为作为注释列表元素的ThreadReplyVi

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

public class ThreadViewModel
{
    public Post post { get; set; }
    public UserStats user { get; set; }
    public List<ThreadReplyViewModel> comment { get; set; }
}
我的问题是如何为作为注释列表元素的ThreadReplyViewModel的“comment”属性创建数据绑定。当我在ThreadViewModel中为列表创建数组时,它会返回如下内容

[{"comment":{"PropertyName":Value,...}, "user":{"PropertyName":Value,...}}]
而不是返回

[{"PropertyName":Value,...}, {"PropertyName":Value,...}]
然后我尝试通过以下方式访问这些属性值:

data-bind="text:comment.PropertyName"

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


p、 我对js/knockout是一个相当陌生的人,这在这篇文章中很明显,对stackexchange也是一个新手,所以如果你需要更多的信息,我很乐意更新这篇文章。希望格式至少可读。

您好,欢迎来到StackOverflow。不幸的是,我不能帮你解决这个问题,但我想给你一个建议,在StackOverflow上格式化你的代码,就像在一个空行后面缩进代码四个空格所描述的那样。这将允许正确的代码高亮显示。您的列表正在转换为数组,因此您可能正在查找类似于注释[0]的内容。comment.PropertyName。但这只处理数组的第一个元素,因此如果尚未使用“with”或“foreach”绑定,则可能需要使用该绑定。如果您包含更多的视图html,这将非常有用
data-bind="text:comment.PropertyName"
data-bind="text:comment.comment.PropertyName"