Asp.net mvc 敲除和MVC集合绑定

Asp.net mvc 敲除和MVC集合绑定,asp.net-mvc,model-view-controller,knockout.js,knockout-mvc,Asp.net Mvc,Model View Controller,Knockout.js,Knockout Mvc,我试着从MVC中的Knockout开始,并设法使正常的绑定/映射正常工作,但是当涉及到集合时,我被卡住了。到目前为止,我有以下代码: public class TestViewModel { public TestViewModel() { Persons = new List<Person>(); } public List<Person> Persons { get; set; } } public class

我试着从MVC中的Knockout开始,并设法使正常的绑定/映射正常工作,但是当涉及到集合时,我被卡住了。到目前为止,我有以下代码:

public class TestViewModel
{
    public TestViewModel()
    {
        Persons = new List<Person>();
    }

    public List<Person> Persons { get; set; } 

}

public class Person
{
    public Person()
    {
    }

    public string Name { get; set; }
    public string Surname { get; set; }
    public List<string> Children { get; set; } 
}
公共类TestViewModel
{
公共TestViewModel()
{
人员=新列表();
}
公共列表人员{get;set;}
}
公共阶层人士
{
公众人士()
{
}
公共字符串名称{get;set;}
公共字符串姓氏{get;set;}
公共列表子项{get;set;}
}
cshtml代码:

<h2>People</h2>
<div data-bind="template: { name: 'person-template', foreach: persons }"></div>

<script type="text/html" id="person-template">
    <ul>
        <li>
            <div><span data-bind="text: name"/>&nbsp;<span data-bind="text: surname"/> has <span data-bind='text: children().length'/></div>
            <ul data-bind="foreach: children">
                <li><span data-bind="text: $data"> </span></li>
            </ul>
        </li>
    </ul>
</script>

<script type="text/javascript">

var TestModel = function(model) {
    var self = this;
    self.persons = ko.observableArray(ko.utils.arrayMap(model.Persons, function(person) {
        var per = new Person(person);
        return per;
    }));
};

var Person = function(person) {
    var self = this;
    self.Name = ko.observable(person.Name);
    self.Surname = ko.observable(person.Surname);
    self.Children = ko.observableArray(person.Children);
};


$(function() {
        var data = @(Html.Raw(Json.Encode(Model)));
        ko.applyBindings(new TestModel(data));
    });

</script>
var TestModel=函数(模型){ var self=这个; self.persons=ko.observearray(ko.utils.arrayMap(model.persons,function(person)){ var per=新员工(人); 返回率; })); }; 变量Person=功能(Person){ var self=这个; self.Name=ko.observable(person.Name); self.姓氏=ko.observable(person.姓氏); self.Children=ko.array(person.Children); }; $(函数(){ var data=@(Html.Raw(Json.Encode(Model)); 应用绑定(新测试模型(数据)); });
我遇到的问题是不确定映射是否完成得很好,或者模板的输出是否存在问题


谢谢

问题是区分大小写。这是正确的模板

<script type="text/html" id="person-template">
    <ul>
        <li>
            <div><span data-bind="text: Name"/>&nbsp;<span data-bind="text: Surname"/> has <span data-bind='text: Children().length'/></div>
            <ul data-bind="foreach: Children">
                <li><span data-bind="text: $data"> </span></li>
            </ul>
        </li>
    </ul>
</script>


哪些代码不适用于上述代码?控制台(F12)中是否有任何错误消息?谢谢!这件事很愚蠢。。我不知道这是区分大小写的,我的财产名称是小写的。