首页 > 解决方案 > 在 jQuery 中设置的编辑器值未传递给控制器

问题描述

正如标题所示,我正在使用 jQuery 设置字段的值,但在提交时,该值不会传递给我的控制器。

我做了什么

部分视图

 <div class="controls controls col-md-10">
  @Html.EditorFor(model => model.itemValue, new { htmlAttributes = new { @class = "form-control", @onChange = "calRealAmt()" } })
  </div>

...


<div class="control-group">
         <label class="control-label col-md-6">Amount</label>
              <div class="controls col-md-10">
     @if (String.Equals((string)ViewBag.fixedAmount, "Y"))
         {
                //disale the amount field
      @Html.EditorFor(model => model.amount, new { htmlAttributes = new { @class = "form-control", disabled = "disabled" } })
      @Html.HiddenFor(model => model.amount)
     }
     else
      {
      @Html.EditorFor(model => model.amount, new { htmlAttributes = new { @class = "form-control spinner" } }) }
      @Html.ValidationMessageFor(model => model.amount, "", new { @class = "text-danger" })
          </div>
      </div>

jQuery

<script type="text/javascript">

    function calRealAmt() {
        var itemValue = $("#itemValue").val();
        var ivDiv;
        var Ans;
        var calPer = $("#calPer").val(); 
        ivDiv = calPer / 100; 
        Ans = itemValue * ivDiv; 

        $("#amount").attr('value', Ans);
    }

如您所见,这只是一些简单的 jquery 来计算百分比并将其设置为金额字段。视觉上设置了值,当我右键单击并检查时,那里的值也是正确的,但是当我提交表单时,控制器中的数量变量为 0。(PS,如果我输入一个数字,它也可以正常提交。)

希望是否可以帮助我解决此问题,我知道使用 ajax 提交,但这似乎有点过头了,我很感兴趣为什么即使设置了值也没有提交。 控制器

public ActionResult Addpayment([Bind(Include = "perDescrip,itemValue,cartId_FK,documentNbr,paymentTypeId_FK,amount,r1Value,r2Value,r3Value,r4Value,r5Value")] Transaction trans)
        {

问候

标签: jqueryasp.net-mvc

解决方案


推荐阅读