Учитывая представление Controller и JS, как вы связываете данные JSON, возвращаемые с контроллера post action.Is это возможно.
контроллер
[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, я вижу, что в моих инструментах dev у меня есть ответ от POST в моей сети как {"CIR": 8.31779, "Recharge": 4.28381, "GW_Withdrawal": 32.27184} Как сделать Я использую это в своем JS, а затем использую его для привязки в качестве текста в своем интерфейсе.
Заранее спасибо!
Скажем, ваша модель имеет эти выходные элементы, определенные где...
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 вы можете использовать плагин отображения нокаутов