0

给定控制器视图和 JS,如何绑定从后操作控制器返回的 JSON 数据。这可能吗?

控制器

 [HttpPost]
    public ActionResult PBHEP(string PC,string FC)
    {
     /some data calculations
       Output output = new Output() { CIR = CIR_, Recharge = Recharge_, GW_Withdrawal= GW_Withdrawal_ };
        return Json(output);
    }

JS

self.submit_conditions = function () {

    var PC_data = ko.toJSON(self.present_conditions());
    var FC_data = ko.toJSON(self.future_conditions());

    $.post("/Home/PBHEP", { "PC": PC_data, "FC": FC_data }, function (data) { alert((data));},'json');
}

在此之后,当控制器返回 Json 数据“输出”时,我看到在我的开发工具中,我的网络中的 POST 响应为{"CIR":8.31779,"Recharge":4.28381,"GW_Withdrawal":32.27184} 怎么办我在我的 JS 中使用它,然后用它在我的 UI 上绑定为文本。

先感谢您!

4

2 回答 2

0

假设您的模型在某些地方定义了这些输出元素...

function vm(){
    var self = this;
    self.CIR = ko.observable();
    self.Recharge = ko.observable();
    self.GW_Withdrawl = ko.observable();
    //remaining stuff

    self.submit_conditions = function(){
        //usual stuff
        $.post(svcUrl, data, function(data){
            self.CIR(data.CIR);
            self.Recharge(data.Recharge);
            self.GW_Withdrawl(data.GW_Withdrawl);
        });
    };
}

ko.applyBindings(new vm());

现在像往常一样绑定它,例如

<label>Recharge:</label><label data-bind="text: Recharge"></label>
于 2013-09-25T17:55:25.090 回答
0

我想如果您使用的是 ViewModels,您可以在敲除和 asp.net mvc 上创建相同的视图模型,并正常绑定数据。

在您的控制器上:

var model = new YourViewModel();
// fill data to return
return Json(model);

返回 javascript 后,您可以使用敲除映射插件

于 2013-09-25T18:33:15.893 回答