c#购物车功能实现及收藏功能实现

  • A+
所属分类:.NET技术
摘要

一.思路逻辑:首先我先来说一下我自己的理解,一个萌新的见解,要实现购物车的功能,首先要获取到登录时的用户id及商品的编号(商品id),这里我用的模式是mvc模式进行实现功能的,用户登录时,利用session保存用户的登录用户名,然后在控制器里进行传值操作,定义一个session进行接收用户输入的用户名,登录成功后进行保存用户的用户名,登录成功,前台在进行跳转到显示界面,点击事先创建好的购物车按钮,把我们已经保存好的用户名传过去,在进行session接收用户名字,添加到购物车时,前面我也说到需要两个值,我们现在已经获取到了用户id(用户名),再获取到商品id就可以进行添加到购物车功能的实现,在显示的ajax拼接字符串进行显示的时候,我们需要再添加一个多选按钮(多选按钮是为了进行多项数据选择时,添加到购物车以及添加收藏时更方便一些),为多选按钮添加一个id属性或者name属性,这里是为了我们方便获取它的数据,获取多选框的id值的方法我就不在这里过多介绍了,既然我们需要的两个值都已经获取到,我们的添加购物车功能就可以实现了,今天先写这么多,明天还要周考,在以后的时间里我会继续修改和添加这篇文章的后续内容,大佬们看过之后,若是有空闲时间,在评论区多给小学生一些建议,我会进行改正的.今天我就说到这里了,购物车的添加基本说完了,后续我会及时利用空闲时间进行后续功能及代码思路逻辑的更新.

一.思路逻辑:

首先我先来说一下我自己的理解,一个萌新的见解,要实现购物车的功能,首先要获取到登录时的用户id及商品的编号(商品id),这里我用的模式是mvc模式进行实现功能的,用户登录时,利用session保存用户的登录用户名,然后在控制器里进行传值操作,定义一个session进行接收用户输入的用户名,登录成功后进行保存用户的用户名,登录成功,前台在进行跳转到显示界面,点击事先创建好的购物车按钮,把我们已经保存好的用户名传过去,在进行session接收用户名字,添加到购物车时,前面我也说到需要两个值,我们现在已经获取到了用户id(用户名),再获取到商品id就可以进行添加到购物车功能的实现,在显示的ajax拼接字符串进行显示的时候,我们需要再添加一个多选按钮(多选按钮是为了进行多项数据选择时,添加到购物车以及添加收藏时更方便一些),为多选按钮添加一个id属性或者name属性,这里是为了我们方便获取它的数据,获取多选框的id值的方法我就不在这里过多介绍了,既然我们需要的两个值都已经获取到,我们的添加购物车功能就可以实现了,今天先写这么多,明天还要周考,在以后的时间里我会继续修改和添加这篇文章的后续内容,大佬们看过之后,若是有空闲时间,在评论区多给小学生一些建议,我会进行改正的.今天我就说到这里了,购物车的添加基本说完了,后续我会及时利用空闲时间进行后续功能及代码思路逻辑的更新.

二.代码如下:

登录功能代码我就不放这里了,有想要的小伙伴可在评论区评论,我再发一下

实例化模型层(model层)订单表:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace MODEL
{
[Table("Product")]
public class Product
{
[Key]
public int Id { get; set; }
public string Pno { get; set; }
public string Pname { get; set; }
public int? Price { get; set; }
public string ImgPath { get; set; }
}
}

dal层,只放了添加购物车的方法:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MODEL;

namespace DAL
{
public class MyShoppingCarDAL
{
public int AddMyShoppingCar(string userid, string pnos)
{
string[] arr = pnos.Trim(',').Split(',');
using (Model1 mc = new Model1())
{
foreach (string str in arr)
{
string sql = $"insert into MyShoppingCar(userid,pno,Account) values('{userid}','{str}',1)";
mc.Database.ExecuteSqlCommand(sql);
}
}

return 1;
}

 

}
}

控制器里的方法:

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

namespace WT01.Controllers
{
public class HomeController : Controller
{
UserInfoBLL bll = new UserInfoBLL();

 

//加入购物车
[HttpPost]
public int AddMyShoppingCar(string pnos)
{
string userid = HttpContext.Session["userid"].ToString();
return new MyShoppingCarBLL().AddMyShoppingCar(userid, pnos);
}

 

}
}

显示中添加购物车的前台代码,这里有一部分显示的前台:

@{
ViewBag.Title = "Home Page";
Layout = null;
}
<script src="~/Scripts/jquery-3.3.1.min.js"></script>

<script>

//文档就绪函数
$(function () {
QueryList();
})

 

//加入购物车
function MyShoppingCar() {
var arr = document.getElementsByName("xselect");
var str = "";
for (var i = 0; i < arr.length; i++) {
if (arr[i].checked)
str += arr[i].id + ",";
}
//alert(str);
$.ajax({
url: '/Home/AddMyShoppingCar',
type: 'post',
dataType: 'json',
data: { pnos: str },
success: function (data) {
if (data > 0)
alert("加入购物车成功!");
}
})
}

//查询信息
function QueryList() {
var content = $("#txtContent").val();

$.ajax({
url: '/Home/GetList',
type: 'get',
dataType: 'json',
data: { pname: content },
success: function (data) {
$("#tbProduct").empty();
for (var i = 0; i < data.length; i++) {
var tr = ' <tr>';
tr += ' <td>';
tr += '<img src="../' + data[i].ImgPath + '" />';
tr += '<br>';
tr += data[i].Price;
tr += '<br>';
tr += data[i].Pname;
tr += '<br>';
tr += '<input name="xselect" type="checkbox" id="' + data[i].Pno + '" />';
tr += ' </td>';

tr += "</tr>";
$("#tbProduct").append(tr);
}
}
})
}

</script>

<input type="text" id="txtContent" /><input value="查询" type="button" onclick="QueryList();" />&nbsp;<input value="收藏" type="button" onclick="MyFavorite();" />&nbsp;<input value="加入购物车" type="button" onclick="MyShoppingCar();" />&nbsp;<input value="我的购物车" type="button" onclick="ToMyShoppingCar();" />
<table id="tbProduct"></table>