我坚持使用applybinding。似乎ViewModel没有绑定数据,我使用的是淘汰映射控件。请使用简单的术语,因为我是淘汰赛的新手,JQuery,JSON等
型号代码
public class Property
{
[Key]
public int PropertyId { get; set; }
public string ProjectName { get; set; }
public string Locality { get; set; }
public string HouseNo { get; set; }
public string Block { get; set; }
public string Address1 { get; set; }
}
控制器代码
public JsonResult GetAllProperties()
{
return Json(db.Property.ToList(), JsonRequestBehavior.AllowGet);
}
Javascript代码
var PropertyViewModal = function (data) { }
var property;
$.ajax({
url: '@Url.Action("GetAllProperties")',
type: 'GET',
dataType: 'json',
success: function (result) {
var data = $.parseJSON(result);
property = new PropertyViewModel(result);
ko.applyBindings(new property());
},
error: function (result) {
alert("error");
}
});
HTML代码
<table>
<tbody data-bind="foreach:property">
<tr>
<td>
<span data-bind="text: ProjectName"></span>
<td>
<span data-bind="text: Locality"></span>
</td>
<td>
<span data-bind="text: HouseNo"></span>
</td>
<td>
<span data-bind="text: Block"></span>
</td>
<td>
<span data-bind="text: Address1"></span>
</td>
<td></td>
</tr>
</tbody>
</table>
答案 0 :(得分:0)
property = new PropertyViewModel(result);
在这里,您要调用构造函数来创建实例对象
ko.applyBindings(new property());
在这里,您将实例对象视为它本身就是一个构造函数,并尝试从中创建另一个实例对象。将行更改为
ko.applyBindings(property);
所有这一切都假设PropertyViewModel()
实际上做了某些事情,并且PropertyViewModal()
只是实际代码中不存在的拼写错误。