2016-04-22 5 views
-2

Ich entwickle eine WebApp mit MVC. Ich habe eine Ansicht mit Kreisen, die einen Wert und einen Schieberegler anzeigen, , wenn Sie die Cirkles schieben, müssen Sie den neuen Wert anzeigen. Ich sende den neuen Wert mit einem POST von meinem AJAX-Aufruf an die Steuerung, , die eine kleine Berechnung mit dem Wert durchführt und es der Ansicht zurückgibt, damit die Kreise den aktualisierten Wert anzeigen können. Allerdings verwendet meine Ansicht immer noch den Startwert.Refresh Modell nach Post-Anfrage in 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

Schreiben Sie auch Code für UpdateModel() Methode hier – Dilip

+0

Was Ajax nennen? –

+0

Ich habe keinen Code für UpdateModel() – Siebe

Antwort

0

Der Erfolg Ihrer Ajax-Aufruf Anrufe 'toonCirkels', die nur Rasierapparat Code generiert enthält, die beim Laden der Seite gefüllt ist. Der Inhalt dieser Methode ändert sich nie, da er NUR durch Rasierer generierten Code enthält und somit immer die gleiche Logik mit den gleichen Werten hat.

+0

und wie kann ich die Daten aktualisieren, ohne die ganze Seite aktualisieren – Siebe

+0

Sie müssen JavaScript (JQuery) Code schreiben die Ihre Kreise auswählt und ihre Werte aktualisiert. – Yan

+0

wir haben dies aber das viewModel gibt nicht die neuesten Daten – Siebe

Verwandte Themen