2013-09-25 34 views
0

鑑於控制器視圖和JS,你如何綁定從後置動作控制器返回的JSON數據。這是可能的。如何綁定MVC中我的post方法控制器的響應數據

控制器

[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和後來使用它作爲我的用戶界面上的文本綁定。

先謝謝您!

+0

您可以使用返回的數據綁定到您的UI元素。您可以訪問數據返回data.CIR ,data.Recharge獲取相應的值,然後將它們綁定到您的UI元素。 –

+0

如果可能的話,你可以共享一個鏈接與例如關於如何綁定這個數據到UI中的文本。我目前正在使用我剛接觸的基金會JS。 – sss111

回答

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

謝謝你,工作得很好。 – sss111

0

我想如果你使用的是ViewModels,你可以在knockout和asp.net mvc上創建相同的viewmodel,並正常綁定數據。

在您的控制器:

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

在返回的JavaScript可以使用knockout mapping plugin

相關問題