2016-01-29 4 views
4

У меня есть 3 текстовых поля, 1-е место для количества, 2-е место по цене и 3-е место для общей цены.Как умножить значения двух текстовых полей в Asp.net MVC

<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 в 1-м текстовом поле и 100 во втором текстовом поле, тогда автоматически отображаются 500 в третьем текстовом поле, и если пользователи меняют значение 1-го или 2-го текстового поля, значение 3-го текстового поля также должно соответствующим образом меняться. Спасибо.

+1

Преобразуйте текст из первых двух блоков в целое число, затем умножьте два вместе, преобразуйте этот результат в строку и поместите его в третье текстовое поле. –

+0

Спасибо, но как я могу получить значения первых двух текстовых полей? У нас нет возможности получить значение по textbox.Text в MVC, есть ли другое решение? – diamond421

+0

Посмотрите на [BeginForm] (https://msdn.microsoft.com/en-us/library/system.web.mvc.html.formextensions.beginform (v = vs.118) .aspx), чтобы опубликовать свою модель к контроллеру. – GuyVdN

ответ

4

Вы можете прослушать событие keyup текстовых полей в javascript, прочитать значение и выполнить умножение и установить результирующее значение в третье текстовое поле.

Предположим, у вас есть библиотека 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.

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(""); 
    } 

Надеется, что это помогает. Я использовал его в своем приложении, и он поступает правильно.

Смежные вопросы