1

我正在做一个应用程序,我有一个选择,用户可以在其中选择不同的团队。每个团队包含几个病人。我使用数据绑定 selectedOptions 保存所选团队,并将选项存储到名为“selectedTeam”的可观察对象中。

我正在通过致电收到一份患者名单

self.searchPatients = function () {
    $.getJSON("/api/API/GetPatients", function (data) {
        ko.mapping.fromJS(data, {}, self.patients);
    });
};
self.searchPatients();

回到我的 APIController,我得到了一个向数据库询问患者的方法。这个调用需要不同的参数,其中一个是要从哪个团队搜索。

我的问题是如何将可观察的“selectedTeam”传递给我的 APIController,将其转换为字符串以将其传递给 DB 调用。

谢谢

4

3 回答 3

1

您可以将数据作为getJSON函数的第二个参数传递:

self.searchPatients = function () {
    $.getJSON("/api/API/GetPatients", { param1: 'anyvalue' }, function (data) {
        ko.mapping.fromJS(data, {}, self.patients);
    });
};
self.searchPatients();
于 2013-08-20T09:23:30.763 回答
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.");
    }
});
于 2013-08-20T09:21:39.757 回答
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 是一个 observable 你不能把它发送到服务器。你要发送的是它的值。这就是为什么您需要“调用”可观察对象的原因。

 self.selectedTeam() // returns the value of the observable.

我希望它有所帮助。

于 2013-08-20T09:30:45.623 回答