如何在Asp.net MVC中乘以两个文本框的值

时间:2016-01-29 20:00:01

标签: c# asp.net asp.net-mvc-4

我有3个文本框,第1个用于数量,第2个用于价格,第3个用于总价格。

 <div class="form-group">
            @Html.LabelFor(model => model.quantity, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.quantity, new { htmlAttributes = new { @class = "form-control", @type = "number" } })
                @Html.ValidationMessageFor(model => model.quantity, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.price, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.price, new { htmlAttributes = new { @class = "form-control", @type = "number" } })
                @Html.ValidationMessageFor(model => model.price, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.totalprice, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">  
                    @Html.EditorFor(model => model.totalprice, new { htmlAttributes = new { @class = "form-control", @type = "number" } })
                    @Html.ValidationMessageFor(model => model.totalprice, "", new { @class = "text-danger" })             
            </div>

这是控制器:

        [HttpPost]
        public ActionResult Add(Model model)
        {
            obj.Quantity = model.quantity;
            obj.Price = model.price;
            obj.TotalPrice = model.totalprice

            db.Details.Add(obj);
            db.SaveChanges();
            return RedirectToAction("");
        }

现在我想将第1和第2个文本框的值相乘,并在第3个文本框中显示它们。例如,如果用户在第一个文本框中输入5,在第二个文本框中输入100,则在第三个文本框中自动显示500,如果用户更改第一个或第二个文本框的值,则第三个文本框的值也应相应地更改。 感谢。

2 个答案:

答案 0 :(得分:4)

您可以在javascript中收听文本框的keyup事件,读取值并进行乘法,并将结果值设置为第三个文本框。

假设您的页面中包含jQuery库。

$(function(){

  $("#quantity,#price").keyup(function(e){

    var q=$("#quantity").val();
    var p=$("#price").val();
    var result="";

    if(q!=="" && p!=="" && $.isNumeric(q) && $.isNumeric(p))
    {
      result = parseFloat(q)*parseFloat(p);
    }
    $("#totalPrice").val(result);

  });

});

Here是一个有效的jsbin样本。

答案 1 :(得分:0)

您可以使用:

 [HttpPost]
    public ActionResult Add(Model model)
    {
        obj.Quantity = model.quantity;
        obj.Price = model.price;
        obj.TotalPrice = model.totalprice

        model.totalprice = model.quanity * model.price
        db.Details.Add(obj);
        db.SaveChanges();
        return RedirectToAction("");
    }

希望它有所帮助。我在我的应用程序中使用它并且它做了正确的事情。