sql - SimpleCart、SQL 和 MVC
问题描述
我的 sql 数据库中有一个产品表,其中一个名为 productQuantity 的字段。我正在使用 simpleCart,它可以节省大量的手动编码。其中一项功能是 simpleCart.increment,它增加了购物车中商品的数量。
但是,我现在遇到一个问题,即如果库存中有 5 件商品,增量会超过第 5 件商品。
如果客户想要购买所有五件商品并且例如错误地增加到 6 件商品,我如何限制客户增加数量。
解决方案
推荐先试用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>
}
推荐阅读
- vps - 来自 VPS IP 地址的奇怪请求
- python - 烧瓶如何能够访问 login.html?
- sql - 如何在 Oracle SQL Server 中使用 if 和 else 条件更新两个不同的表?
- python - pandas 删除带有条件的表并将值转换为 int
- hyperledger - Hyperledger Composer v0.19 启动业务网络时出错
- python - python cprofile 显示了很多信息。可以仅限于我的代码吗
- reactive-programming - 为什么我的 Spring WebFlux 控制器只在第一次请求时返回数据?
- active-directory - 在 ldap 查询中使用 DistinguishedName
- c# - 在 WinForms 应用程序中运行 C# 控制台应用程序并等待它完成
- json - 从 C# 生成的 POST JSON 将由 Python 接收