Asp.net mvc 敲除和MVC集合绑定
我试着从MVC中的Knockout开始,并设法使正常的绑定/映射正常工作,但是当涉及到集合时,我被卡住了。到目前为止,我有以下代码: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
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"/> <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"/> <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)中是否有任何错误消息?谢谢!这件事很愚蠢。。我不知道这是区分大小写的,我的财产名称是小写的。