在ASP.MVC中请求后刷新模型

时间:2016-04-22 08:27:31

标签: javascript jquery asp.net asp.net-mvc asp.net-mvc-4

我正在使用MVC开发webApp。 我有一个圆圈显示值和滑块的视图, 滑动时,圆圈需要显示新值。 我通过我的AJAX调用POST向控制器发送新值, 使用该值进行小计算并将其返回到视图 所以圆圈可以显示更新的值。 但是我的视图仍然使用startvalue。

   @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 () { }

    });
}

1 个答案:

答案 0 :(得分:0)

您的Ajax呼叫成功呼叫&#39; toonCirkels&#39;它只包含在页面加载时填充的剃刀生成的代码。此方法的内容永远不会更改,因为它只包含剃刀生成的代码,因此将始终具有相同逻辑的相同逻辑。