我正在做一个应用程序,我有一个选择,用户可以选择不同的团队。每个团队包含几个患者。我使用data-bind selectedOptions保存所选团队,并将该选项存储到名为'selectedTeam'的可观察对象。
我通过致电
收到患者名单self.searchPatients = function () {
$.getJSON("/api/API/GetPatients", function (data) {
ko.mapping.fromJS(data, {}, self.patients);
});
};
self.searchPatients();
回到我的APIController,我得到了一个方法,要求DB为患者提供帮助。这个调用需要不同的参数,其中一个是要搜索的团队。
我的问题是如何将可观察的'selectedTeam'传递给我的APIController,将其转换为字符串以将其传递给数据库调用。
THX
答案 0 :(得分:1)
您可以将数据作为getJSON函数的第二个参数传递:
self.searchPatients = function () {
$.getJSON("/api/API/GetPatients", { param1: 'anyvalue' }, function (data) {
ko.mapping.fromJS(data, {}, self.patients);
});
};
self.searchPatients();
答案 1 :(得分:0)
要将数据传递给控制器,您可以使用jquery ajax调用,如下所示,
$.ajax({
type: "POST",
url: "api/API/GetPatients",
data: JSON.stringify(yourObject), // data to be passed to controller
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
// your success call
},
error: function () {
alert("Unable to Save.");
}
});
答案 2 :(得分:0)
假设服务器方法如下所示:
[HttpGet]
public Object GetPatients(String team)
{
// return the patients
}
您应该使用此JavaScript:
self.searchPatients = function () {
$.getJSON("/api/API/GetPatients", { team: self.selectedTeam() }, function (data) {
ko.mapping.fromJS(data, {}, self.patients);
});
};
因为self.selectedTeam是一个可观察的,你不能将它发送到服务器。你想要发送的是它的值。这就是为什么你需要“召唤”观察者。
self.selectedTeam() // returns the value of the observable.
我希望它有所帮助。