我是 MVC 的新手,我想用 Knockout 实现一个简单的 Web 应用程序,但我卡住了。
我的数据绑定似乎都不起作用。当页面加载时,我可以在 Fiddler 中看到有一个 Get 到服务器,它返回一个包含所有 Destino 的有效 Json,但它没有出现在视图中。
看法:
<div id="right_col" class="right">
<table>
<thead>
<tr>
<th>Id</th>
<th>Direccion</th>
<th>lat</th>
<th>lng</th>
</tr>
</thead>
<tbody data-bind="foreach: Destinos">
<tr>
<td data-bind="text: Id"></td>
<td data-bind="text: Direccion"></td>
<td data-bind="text: lat"></td>
<td data-bind="text: lng"></td>
</tr>
</tbody>
</table>
<br />
<button data-bind="click: $root.GetDestinos">Get</button>
</div>
Javascript [淘汰赛]:
function DestinoVM () { //ViewModel
//Make the self as 'this' reference
var self = this;
//Declare observable which will be bind with UI
self.Id = ko.observable("");
self.Direccion = ko.observable("");
self.lat = ko.observable("");
self.lng = ko.observable("");
//The Object which stored data entered in the observables
var DestinoData = {
Id: self.Id,
Direccion: self.Direccion,
lat: self.lat,
lng: self.lng
};
//Declare an ObservableArray for Storing the JSON Response
self.Destinos = ko.observableArray([]);
GetDestinos(); //Call the Function which gets all records using ajax call
//Function to Read All Destinos
function GetDestinos() {
//Ajax Call Get All Employee Records
$.ajax({
type: "GET",
url: "/api/destino",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
self.Destinos(data); //Put the response in ObservableArray
},
error: function (error) {
alert(error.status + "<--and--> " + error.statusText);
}
});
//Ends Here
}
};
ko.applyBindings(new DestinoVM());
模型:
public class Destino
{
[Key,DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string lat { get; set; }
public string lng { get; set; }
public string Direccion { get; set; }
}
问候。