2016-11-24 5 views
-1

Итак, я следил за этим учебным пособием https://www.asp.net/mvc/overview/older-versions/mvc-music-store/mvc-music-store-part-8 в создании корзины покупок на моем веб-сайте и удался, чтобы он работал, но я хочу, чтобы пользователи могли заказывать более одного количества товара , В настоящее время, если пользователь хочет заказать более одного количества одного и того же предмета, он должен перейти на страницу товара и нажать «добавить в корзину», пока не получит желаемое количество. Я хочу добавить текстовое поле, кроме кнопки «Добавить в корзину», в которой указано, сколько количества будет добавлено в корзину.Закажите более одного экземпляра товара в корзине

Корзина Контроллер:

public ActionResult AddToCart(int id) 
    { 
     // Retrieve the album from the database 
     var addedAlbum = db.Items 
      .Single(album => album.Item_Id == id); 

     // Add it to the shopping cart 
     var cart = ShoppingCart.GetCart(this.HttpContext); 

     cart.AddToCart(addedAlbum); 

     // Go back to the main store page for more shopping 
     return RedirectToAction("Index"); 
    } 

товара Вид:

@model OnlineShop.Models.Items 
@{ 
    ViewBag.Title = "Item"; 
    Layout = "~/Views/Shared/UserLayout.cshtml"; 
} 

<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<h3>Item</h3> 
<hr /> 
<div> 
    <h3>ID#@Html.DisplayFor(model => model.Item_Id) @Html.DisplayFor(model => model.Item_Name) By Account #@Html.DisplayFor(model => model.Account_Id)</h3> 
    <hr /> 
    <dl class="dl-horizontal"> 
     <h4> 
      <dt> 
       Image 
      </dt> 
      <dd> 
       <td><img src="~/Images/@Model.Item_ImagePath" width="100" height="100" /></td> 
      </dd> 
      <dt> 
       Id 
      </dt> 

      <dd> 
       @Html.DisplayFor(model => model.Item_Id) 
      </dd> 

      <dt> 
       Name 
      </dt> 

      <dd> 
       @Html.DisplayFor(model => model.Item_Name) 
      </dd> 

      <dt> 
       Details 
      </dt> 

      <dd> 
       @Html.DisplayFor(model => model.Item_Details) 
      </dd> 

      <dt> 
       Stock 
      </dt> 

      <dd> 
       @Html.DisplayFor(model => model.Item_Stock) 
      </dd> 
      <dt> 
       Category 
      </dt> 

      <dd> 
       @Html.DisplayFor(model => model.Item_Category) 
      </dd> 


      <dt> 
       Account Id 
      </dt> 

      <dd> 
       @Html.DisplayFor(model => model.Account_Id) 
      </dd> 

      <dt> 
       Cost 
      </dt> 

      <dd> 
       @Html.DisplayFor(model => model.Item_Cost) 
      </dd> 

      <dt> 
       Date Registered 
      </dt> 

      <dd> 
       @Html.DisplayFor(model => model.Item_Date) 
      </dd> 
     </h4> 

    </dl> 
</div> 

<p class="button"> 
    @Html.ActionLink("Add to cart", "AddToCart", 
     "ShoppingCart", new { id = Model.Item_Id }, "") 
</p> 

Корзина Модель:

public class Cart 
{ 
    [Key] 
    public int Record_Id { get; set; } 
    public string Cart_Id { get; set; } 
    public int Item_Id { get; set; } 
    public int Count { get; set; } 
    public virtual Items Item { get; set; } 
} 

Корзина Модель:

public void AddToCart(Items item) 
    { 
     // Get the matching cart and album instances 
     var cartItem = db.Carts.SingleOrDefault(
      c => c.Cart_Id == ShoppingCartId 
      && c.Item_Id == item.Item_Id); 

     if (cartItem == null) 
     { 
      // Create a new cart item if no cart item exists 
      cartItem = new Cart 
      { 
       Item_Id= item.Item_Id, 
       Cart_Id = ShoppingCartId, 
       Count = 1 
      }; 
      db.Carts.Add(cartItem); 
     } 
     else 
     { 
      // If the item does exist in the cart, 
      // then add one to the quantity 
      cartItem.Count++; 
     } 
     // Save changes 
     db.SaveChanges(); 
    } 
+1

Вы забыли задать вопрос – Andrei

ответ

0

Лучший способ - поставить + и - перед пользовательскими заказами на самой странице корзины. Или иметь текстовое поле для количества элементов.

Тогда они могут увеличить количество или уменьшить количество там, без необходимости идти на страницу товара.

Пример:

http://www.c-sharpcorner.com/UploadFile/mahakgupta/a-simple-example-of-shopping-cart-with-ajax-and-Asp-Net/

+0

Спасибо за это! – PaginationIsLife

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