给定控制器视图和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 后,您可以使用挖空映射插件