2016-04-22 53 views
-2

我正在開發一個MVC的webApp。 我有一個圓形顯示值和滑塊的視圖,當你滑動圓形時需要顯示新的值。 我通過從我的AJAX呼叫到控制器 的POST發送新值,該值用該值進行小的計算,並將其返回到視圖 ,以便cirkles可以顯示更新的值。 但是,我的觀點仍然使用startvalue。ASP.MVC後請求刷新模型

@model UGT.UI.Web.MVC.Models.BelastingViewModel 
<script language="JavaScript"> 
var config1 = liquidFillGaugeDefaultSettings(); 

@{ 
     teller = 1; 
     string naam_var = null; 

     foreach (KeyValuePair<UGT.BL.Domain.BegrotingPackage.Categorie, double> cat in Model.Belasting) 
     { 
      naam = "fillgauge" + teller; 
      naam_var = "gauge" + teller; 
      @: var @naam_var = loadLiquidFillGauge("@naam", "@Html.DisplayFor(modelItem => cat.Value)", config1); 

       teller++; 
     } 
    } 

function toonCirkels() { 

    @{ 

     teller = 1; 
     naam = "fillgauge" + teller; 
     string naam_var2 = null; 
     foreach (KeyValuePair<UGT.BL.Domain.BegrotingPackage.Categorie, double> cat in Model.Belasting) 
     { 
      naam_var2 = "gauge" + teller; 
      // @: gauge1.update("@Html.DisplayFor(modelItem => cat.Value)"); 
       // @: var @naam_var = loadLiquidFillGauge("@naam", "@Html.DisplayFor(modelItem => cat.Value)", config1); 
        // @: @naam_var2.update("@Html.DisplayFor(modelItem => cat.Value)"); 
      teller++; 
     } 

     //@:gauge1.update("500"); 

    } 
} 

public class BelastingsController : Controller 
    { 
    private BegrotingsManager begrotingsManager = new BegrotingsManager(); 
    private int gemeenteId = 54; 
    private double loon = 200; 
    private BelastingViewModel belastingen = new BelastingViewModel(); 

    // GET: Belastings 
    public ActionResult Index() 
    { 
      var belasting = begrotingsManager.GetBelastingGebruiker(this.loon, gemeenteId); 
     belastingen.Belasting = belasting; 
     UpdateModel(belastingen); 
     return View(belastingen); 

    } 

    [HttpPost] 
    public ActionResult Index(String loon) 
    { 
     this.loon = Double.Parse(loon); 
     var belasting = begrotingsManager.GetBelastingGebruiker(this.loon, gemeenteId); 
      belastingen.Belasting = belasting; 
      UpdateModel(belastingen); 
      return new HttpStatusCodeResult(HttpStatusCode.OK); 
      // return RedirectToAction("Index"); 
    } 

namespace UGT.UI.Web.MVC.Models 
{ 
    public class BelastingViewModel 
    { 
    public IDictionary<Categorie, double> Belasting { get; set; } 
    } 


} 

 d3.selectAll('.range').on('change', function() { 
     this.value = parseInt(this.value); 
     if (this.value < 0) this.value = 0; 
     else if (this.value > 5000) this.value = 5000; 


     var loon = this.value; 
     var loonString = "€" + loon; 
     d3.select('.range_value').html(loonString); 

     sendLoon(loon, loonString); 
    }); 
} 

function sendLoon(loon, loonString) { 
    $.ajax({ 
     contentType: "application/json; charset=utf-8", 
     url: "/Belastings", 
     type: "POST", 
     data: JSON.stringify({ "loon": loon }), 
     success: function() { 
      // window.location.reload(); 
      toonCirkels(); 
     }, 
     error: function() { } 

    }); 
} 
+0

還在這裏寫UpdateModel()方法的代碼 – Dilip

+0

ajax調用什麼? –

+0

我沒有任何代碼UpdateModel() – Siebe

回答

0

你的Ajax調用呼叫 'toonCirkels' 只包含剃刀產生其填充在頁面加載代碼的成功。這個方法的內容永遠不會改變,因爲它只包含剃刀生成的代碼,因此將始終具有相同的邏輯和相同的值。

+0

,我如何更新數據,而無需刷新整個頁面 – Siebe

+0

您需要編寫JavaScript(JQuery)代碼它會選擇你的圈子並更新它們的值。 – Yan

+0

我們有這個,但viewModel不給最近的數據 – Siebe