如何在 MVC 中绑定来自我的后方法控制器的响应数据



给定控制器视图和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 上绑定为文本。

提前谢谢你!

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

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>

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

在控制器上:

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

返回 javascript 后,您可以使用挖空映射插件

最新更新