Как привязать ответные данные из моего пост-метода контроллера в MVC

0

Учитывая представление 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, а затем использую его для привязки в качестве текста в своем интерфейсе.

Заранее спасибо!

Теги:
asp.net-mvc
knockout.js

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>
  • 0
    Спасибо, что сработало нормально.
0

я предполагаю, что если вы используете ViewModels, вы можете создать ту же модель просмотра на нокауте и asp.net mvc и сделать привязку данных нормально.

На вашем контроллере:

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

При возврате на javascript вы можете использовать плагин отображения нокаутов

Ещё вопросы

Сообщество Overcoder
Наверх
Меню