zoukankan      html  css  js  c++  java
  • MVC 简便购物车

    效果图:

    (一)controlles

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using MvcApplication1.Models;
    namespace MvcApplication1.Controllers
    
    {
        
        public class ShopCartController : Controller
        {
            //
            // GET: /ShopCart/
    
            public ActionResult Index()//显示的主页面
            {
                if (Session["cart"] == null)//判断一下是否为空
                {
                    ViewBag.Count = 0;
                }
                else
                {
                    List<OrderDetails> temp = Session["cart"] as List<OrderDetails>;
                    ViewBag.Count = temp.Count;
                }
    
                List<Fruit> list = new FruitBF().Select();
                return View(list);
            }
            public ActionResult ViewCart()//购物车的视图
            {
                if (Session["cart"] == null)
                {
                    List<OrderDetails> temp = new List<OrderDetails>();
                    Session["cart"] = temp;
                }
    
                List<OrderDetails> list = Session["cart"] as List<OrderDetails>;//判断一共花了多少钱
                decimal cost = list.Sum(p=>p.Count*p.FruitPrice).Value;//用水果的数量乘以水果的单价
                ViewBag.Sum = cost; 
                return View(list);
            }
         
            public ActionResult RemoveFromCart(string id)//删除
            {
                if (Session["cart"] == null)//当集合里没有数值的时候
                {
                    List<OrderDetails> temp = new List<OrderDetails>();
                    Session["cart"] = temp;
                }
                List<OrderDetails> list = Session["cart"] as List<OrderDetails>;
    
                var query = list.Where(p=>p.FruitCode == id);
                if (query.Count() > 0)//判断一下,如果里面有数值得话,就减去一个
                {
                    OrderDetails data = query.First();
                    if (data.Count > 1)
                    {
                        data.Count--;
                    }
                    else
                    {
                        list.Remove(data);
                    }
                    return RedirectToAction("ViewCart");//刷新一下新操作的页面
                }
                else
                {
                    return RedirectToAction("ViewCart");
                }
            }
            public ActionResult Buy(string id)//购买
            {
                if (Session["cart"] == null)//点击购买上面累计一共买了几种水果
                {
                    List<OrderDetails> temp = new List<OrderDetails>();
                    Session["cart"] = temp;
                }
                List<OrderDetails> list = Session["cart"] as List<OrderDetails>;
    
                var query = list.Where(p=>p.FruitCode == id);
                if (query.Count() <= 0)
                {
                    OrderDetails data = new OrderDetails();
                    data.FruitCode = id;
                    data.Count = 1;
                    list.Add(data);
                }
                else
                {
                    OrderDetails data = query.First();
                    data.Count++;
                }
    
                return RedirectToAction("Index");
            }
        }
    }
    (二) models
    {1}fruitBF

    using
    System; using System.Collections.Generic; using System.Linq; using System.Web; namespace MvcApplication1.Models { public class FruitBF { private MyDBDataContext _Context = new MyDBDataContext(); public List<Fruit> Select() { return _Context.Fruit.ToList(); } } }
    {2} OrderDetails

    using
    System; using System.Collections.Generic; using System.Linq; using System.Web; namespace MvcApplication1.Models { public partial class OrderDetails { private MyDBDataContext _Context = new MyDBDataContext(); public string FruitName { get { var query = _Context.Fruit.Where(p=>p.Ids == this.FruitCode); if (query.Count() > 0) { return query.First().Name; } return ""; } } public decimal FruitPrice { get { var query = _Context.Fruit.Where(p => p.Ids == this.FruitCode); if (query.Count() > 0) { return query.First().Price.Value; } return 0; } } } }
     

    (三) views

    <1> index--主页
    @using MvcApplication1.Models; @model List
    <Fruit> @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title> </head> <body> <div> <div>你已经购买了 @ViewBag.Count 个商品</div> <table width="100%" border="1" > @foreach(Fruit data in Model ) { <tr> <td>@data.Name</td> <td>@data.Price</td> <td>@data.Numbers</td> <td>@Html.ActionLink("购买", "Buy", "ShopCart", new { id=data.Ids},null)</td> </tr> } </table> @Html.ActionLink("查看购物车","ViewCart"); </div> </body> </html>

    效果图:



    <2> viewcart-- 购物车页面
    @using MvcApplication1.Models; @model List
    <OrderDetails> @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>ViewCart</title> </head> <body> <h1>查看购物车</h1> <div> <ul> @foreach(OrderDetails item in Model) { <li> @item.FruitName ( 购买数量:@item.Count 个 单价: @item.FruitPrice ) @Html.ActionLink("删除", "RemoveFromCart", new { id= item.FruitCode}) </li> } </ul> <font color="red"> 您一共购买了 @ViewBag.Sum 元的商品 </font> @Html.ActionLink("提交订单","SubmitOrder") </div> </body> </html>

    (四) 添加一个JS

    效果图:

  • 相关阅读:
    SaltStack(六) 案例练习
    SaltStack(五) SaltStack与ZeroMQ
    SaltStack(四) 配置管理
    SaltStack(三) 远程执行
    js 阳历、阴历互转
    把一个服务器的数据库导入到另一台服务器中
    vue项目 px自动转vw
    oracle创建自增序列和触发器
    svn 无法clean up的解决方案
    vue 后台获取路由表,addRouters动态路由
  • 原文地址:https://www.cnblogs.com/w-wz/p/4647492.html
Copyright © 2011-2022 走看看