在.getJSON中传递数据。可能?怎么样?

时间:2013-08-20 09:14:40

标签: c# jquery mvvm knockout.js

我正在做一个应用程序,我有一个选择,用户可以选择不同的团队。每个团队包含几个患者。我使用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

3 个答案:

答案 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.

我希望它有所帮助。