首页 > 解决方案 > SimpleCart、SQL 和 MVC

问题描述

我的 sql 数据库中有一个产品表,其中一个名为 productQuantity 的字段。我正在使用 simpleCart,它可以节省大量的手动编码。其中一项功能是 simpleCart.increment,它增加了购物车中商品的数量。

但是,我现在遇到一个问题,即如果库存中有 5 件商品,增量会超过第 5 件商品。

如果客户想要购买所有五件商品并且例如错误地增加到 6 件商品,我如何限制客户增加数量。

标签: sqlasp.net-mvc-5simplecart

解决方案


推荐先试用demo在线测试demo LINK

这是一个简单的示例演示,它的逻辑:

当用户添加购物车产品数量超过产品数量时。

它会显示Out of Product Quantity给用户。

模型

public class SimpleCart {
    public  int UserID {get;set;}
    public  string productName {get;set;}
    public  int productQuantity {get;set;}
}

控制器

using System;
using System.Web.Mvc;
using System.Collections.Generic;
using System.Linq;

namespace HelloWorldMvcApp
{   
    public class ProductController : Controller
    {
        static List<dynamic> FakeProducts = new List<dynamic>(){
            new {
                productName = "xxxbaseball",productQuantity = 5
            }           
        };

        static List<SimpleCart> FakeSimpleCarts = new List<SimpleCart>(){
            new SimpleCart{
                UserID = 1,
                productName = "xxxbaseball",
                productQuantity = 5
            }           
        };      

        [HttpGet]
        public ActionResult Index()
        {
            var SimpleCarts = FakeSimpleCarts.Where(w=>w.UserID==1).SingleOrDefault();
            return View(SimpleCarts);
        }


        public ActionResult AddProduct()
        {           
            var simpleCart = FakeSimpleCarts.Where(w=>w.UserID==1).SingleOrDefault();
            var fakeProduct = FakeProducts.Where(w=>w.productName == simpleCart.productName).SingleOrDefault();
            if(simpleCart.productQuantity+1 > fakeProduct.productQuantity){
                ViewBag.Error = "Out of ProductQuantity";
            }else{
                simpleCart.productQuantity = simpleCart.productQuantity + 1;
            }
            return View(simpleCart);
        }
    }
}

看法

@using HelloWorldMvcApp
@model SimpleCart
@{
    Layout = null;
    var simpleCart = Model;
}


@using (Html.BeginForm("AddProduct", "Product", FormMethod.Post))
{
    <div>
        productName: @(simpleCart.productName) <br>
        productQuantity: @(simpleCart.productQuantity) <br>
        <input type='submit' value='AddProduct'/><br>
        <p><font size="3" color="red">@ViewBag.Error</font></p>
    </div>  
}


推荐阅读