使用 knockoutjs - Asp.net MVC 绑定来自 JSON 对象的数据
binding data from JSON object with knockoutjs - Asp.net MVC
在嵌套 JSON 对象的情况下,我无法通过返回 JSON 获取数据。
HTML 代码如下:
<div>
<h2>List Employee</h2>
<br />
<table class="table table-bordered" >
<thead>
<tr>
<td>Id</td>
<td>Name</td>
<td>Age</td>
</tr>
</thead>
<tbody data-bind="foreach: Employees">
<tr>
<td data-bind="text: Id"></td>
<td data-bind="text: Name"></td>
<td data-bind="text: Age"></td>
</tr>
</tbody>
</table>
</div>
然后 KnockoutJS
function ProductViewModel() {
var self = this;
self.Employees = ko.observableArray();`
$.ajax({
url: '/Home/GetEmployee',
cache: false,
type: 'GET',
contentType: 'application/json; charset=utf-8',
data: {},
success: function (data) {
self.Employees(ko.mapping.fromJS(data));
}
})
}
var viewModel = new ProductViewModel();
ko.applyBindings(viewModel);`
控制器:
public JsonResult GetEmployee()
{
var employee = db.Employee.ToList();
return Json(new { data = employee }, JsonRequestBehavior.AllowGet);
}
Json 对象:
`{"data":[{"Id":1,"Name":"Andrew","Age":25},{"Id":2,"Name":"John","Age":28},{"Id":3,"Name":"Layla","Age":24},{"Id":4,"Name":"Mia","Age":26}]}`
结果错误:
任何人都可以改进我的代码,请...
您的 data
在对象中,因此您必须解析它:
const myData = JSON.parse(data);
self.Employees(ko.mapping.fromJS(myData.data)); //in data is your array
如果您只需要用于显示的数据,则可以不进行映射:self.Employees(myData.data);
在嵌套 JSON 对象的情况下,我无法通过返回 JSON 获取数据。
HTML 代码如下:
<div>
<h2>List Employee</h2>
<br />
<table class="table table-bordered" >
<thead>
<tr>
<td>Id</td>
<td>Name</td>
<td>Age</td>
</tr>
</thead>
<tbody data-bind="foreach: Employees">
<tr>
<td data-bind="text: Id"></td>
<td data-bind="text: Name"></td>
<td data-bind="text: Age"></td>
</tr>
</tbody>
</table>
</div>
然后 KnockoutJS
function ProductViewModel() {
var self = this;
self.Employees = ko.observableArray();`
$.ajax({
url: '/Home/GetEmployee',
cache: false,
type: 'GET',
contentType: 'application/json; charset=utf-8',
data: {},
success: function (data) {
self.Employees(ko.mapping.fromJS(data));
}
})
}
var viewModel = new ProductViewModel();
ko.applyBindings(viewModel);`
控制器:
public JsonResult GetEmployee()
{
var employee = db.Employee.ToList();
return Json(new { data = employee }, JsonRequestBehavior.AllowGet);
}
Json 对象:
`{"data":[{"Id":1,"Name":"Andrew","Age":25},{"Id":2,"Name":"John","Age":28},{"Id":3,"Name":"Layla","Age":24},{"Id":4,"Name":"Mia","Age":26}]}`
结果错误:
任何人都可以改进我的代码,请...
您的 data
在对象中,因此您必须解析它:
const myData = JSON.parse(data);
self.Employees(ko.mapping.fromJS(myData.data)); //in data is your array
如果您只需要用于显示的数据,则可以不进行映射:self.Employees(myData.data);