Как изменить значения ТД путем изменения значения входного числа? - PullRequest
0 голосов
/ 04 мая 2020

У меня есть представление, отображающее продукты по группам, и его модель является моделью представления, которая содержит продукты и IEnumerable. Моя цель - когда пользователь вводит число в поле ввода productCount, Sum of ProductPrice и Sum of Product product с изменениями скидки, как я могу это сделать? и если я хочу сохранить и отправить эти значения в другое представление, которое называется shoppingBasket, что мне делать?

@using MyProject.Models
@model MyProject.Models.ProductViewModel
@{
    ViewBag.Title = "Show Products By Group";

}
<div class="row" style="height:100%">
    <!--main content-->
    <!-- sidebar -->
    <div class="col-md-3 sidebar visible-md-block visible-lg-block" dir="rtl">
        <ul class="nav nav-stackedt ">
            <li class="active">
                <a href="#" class="first">
                    @Model.Product.ProductSubGroup.ProductSubGroupTitle

                </a>
            </li>
            @foreach (var item in Model.IEProduct)
            {
                <li>
                    <a href="/Product/ShowProduct/@item.ProductID">
                        @item.ProductTitle
                    </a>
                </li>


            }
        </ul>
    </div>
    <div class="col-md-9" style="min-height:72%;" dir="rtl">
        <div class="page-header">

            <h2 style="font-family: Tahoma; color:#01747b;">
                @Model.Product.ProductSubGroup.ProductGroup.ProductBrand.ProductBrandTitle
                <br /><br />
                <small>@Model.Product.ProductSubGroup.ProductGroup.ProductGroupTitle - @Model.Product.ProductSubGroup.ProductSubGroupTitle</small>

            </h2>
         

        </div>
          <div class="row ">
      
        <table class="table table-bordered table-hover table-striped col-md-11 text-center ">
            <tr>
                <th>Row</th>
                <th>Image</th>
                <th>ProductTitle and Details</th>
                <th>Size</th>
                <th>Price</th>
                <th>Discount</th>
                <th>Count</th>
                <th>Sum</th>
                <th>SumWithDiscount</th>
               

            </tr>
            @{
                int RowCount = 1;
            }
            @foreach (var item in Model.IEProduct)
        {
                
                <tr>
                    <td>@RowCount</td>
                    <td><img src="/img/logo.png" width="100" /></td>
                    <td><a href="/Product/ShowProduct/@item.ProductID" target="_blank">@item.ProductTitle</a></td>
                    <td>@item.Size</td>
                    <td value="@item.ProductPrice"  class="productPrice">
                        @if (item.ProductPrice.HasValue)
                        {
                            @item.ProductPrice.Value.ToString("0,#")
                            
                        }
                        
                       
                    </td>
                    @if(item.Discounts.Any(d => d.ProductID == item.ProductID))
                    { 
                        <td  class="productDiscount" value="@item.Discounts.First(d => d.ProductID == item.ProductID).DiscountPercent" >
                            @item.Discounts.First(d => d.ProductID == item.ProductID).DiscountPercent
                        </td>
                    }
                    else
                    {
                        <td  class="productDiscount" value="0" >
                         0
                     </td>
                        
                    }
                   @*@Html.Action("shoppingCart","Product",new {productid=item.ProductID })*@
                    <td>
                        <input type="number" min="0"   class="input"  style="width: 70px;"/>
                    </td>
                    <td  class="Sum">
                        
                    </td>
                    <td  class="SumWithDiscount">
                       
                    </td>
                       </tr>

                RowCount++;
            } 
        </table>
    </div>

</div>
</div>


@section Script
{
   
<script>

//function MySum() {
//    var percent = $('#productDiscount').attr("value");
//    var price = $('#productPrice').attr("value");
//    var productcount = document.getElementById('count').value;
//    var sum = productcount * price;
//    var sumwithdiscount = sum - ((sum * percent) / 100);

//    $('#Sum').html(sum);

//    $('#SumWithDiscount').html(sumwithdiscount);

//}

    $(".input").onKeyUp(function () {
        var percent = $('.productDiscount').attr("value");
        var price = $('.productPrice').attr("value");
        var productcount = $(this).value;
        var sum = productcount * price;
        var sumwithdiscount = sum - ((sum * percent) / 100);
        
        $(".Sum").each(function () {
            $(this).html(sum);
        });
        $(".SumWithDiscount").each(function() {
            $(this).html(sumwithdiscount);
        });
    });
</script>

Это контроллер

 public ActionResult ShowProductByGroup(int id)
    {
        var ProductViewModel = new ProductViewModel();

        ProductViewModel.IEProduct = database.Products.Where(p => p.ProductSubGroupID == id);

        ProductViewModel.Product = database.Products.First(p => p.ProductSubGroupID == id);
        return View(ProductViewModel);

    }

Это ProductViewModel

public class ProductViewModel
{

    public IEnumerable<Products> IEProduct { get; set; }

    public Products Product { get; set; }

}

в ShoppingBasketView, у меня есть следующие пункты:

image

и эта корзина покупок Класс:

  public class ShowShoppingCart
{

    public int ProductId { get; set; }

    public string ProductTitle { get; set; }

    public int ProductCount { get; set; }

    public int? ProductPrice { get; set; }

    public int? Sum { get; set; }

    public int? SumWithDiscount { get; set; }

    public int? TotalSum { get; set; }

    public int? TotalsumWithDiscount { get; set; }

    public string Size { get; set; }

    public int DiscountPercent { get; set; }

   }
...