当前位置: 首页 > news >正文

懒人免费建站模板wordpress 域名分离

懒人免费建站模板,wordpress 域名分离,建设全球购多用户商城网站,北京电力交易中心绿色电力交易实施细则经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,ba…

经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面等功能的开发,今天继续讲解商品详情功能开发,仅供学习分享使用,如有不足之处,还请指正。

商品详情功能说明

首页和商品列表,都是只展示商品的主要信息,如商品名称,商品价格,类型等内容,让人有一个先入为主的商品概念,当用户对商品有兴趣时,可以点击链接跳转商品详情页面,查看商品更全面的信息,如:颜色,尺寸等内容。

商品详情功能设计

根据商品详情页面功能说明,在此页面,用户可以查看商品的具体内容,如:图片,颜色,大小,类型,标签以及加入购物车,立即购买等功能,具体页面设计如下所示:

商品详情页面功能开发

商品详情主要展示商品信息和商品配置信息。

1. 数据表创建

关于商品表EB_Product和对应模型Product的创建,可参考第二篇文章。商品配置表EB_ProductConfig,主要配置商品的特殊属性,如:颜色,尺寸,缩略图等内容,如下所示:

创建表的语句,如下所示:

CREATE TABLE [dbo].[EB_ProductConfig]([Id] [bigint] IDENTITY(1,1) NOT NULL,[ProductId] [bigint] NULL,[ConfigType] [varchar](50) NULL,[ConfigName] [varchar](50) NULL,[ConfigValue] [varchar](150) NULL,[CreateTime] [datetime] NULL,[CreateUser] [varchar](50) NULL,[LastEditTime] [datetime] NULL,[LastEditUser] [varchar](50) NULL
) ON [PRIMARY]

 

2. 商品配置实体创建

商品配置表对应的项目模型实体,和数据表一一对应,如下所示:

namespace EasyBuyShop.Models
{/// <summary>/// 产品配置,主要配置颜色,大小,缩略图路径等/// </summary>[SqlSugar.SugarTable("EB_ProductConfig")]public class ProductConfig : EntityModel{public long ProductId { get; set; }public string ConfigType { get; set; }public string ConfigName { get; set; }public string ConfigValue { get; set; }}
}

 

3. 数据处理层DAL

商品详情页面主要根据商品ID获取商品的详细信息以及商品配置信息,如下所示:

商品详细信息在ProductDal中,如下所示:

public Product GetProduct(long Id)
{try{using (var db = this.GetDb(BaseDal.ConnStr)){return db.Queryable<Product>().First(r=>r.Id==Id);}}catch (Exception ex){LogHelper.Fatal(ex.Message);return null;}
}

 

商品配置信息在ProductConfigDal中,获取配置信息如下所示:

using EasyBuyShop.Models;
using EasyBuyShop.Utils;namespace EasyBuyShop.DAL
{public class ProductConfigDal : BaseDal{public ProductConfigDal(){}/// <summary>/// 获取产品配置/// </summary>/// <param name="productId"></param>/// <returns></returns>public List<ProductConfig> GetProductConfigListById(long productId){try{using (var db = this.GetDb(BaseDal.ConnStr)){return db.Queryable<ProductConfig>().Where(r => r.ProductId == productId).ToList();}}catch (Exception ex){LogHelper.Fatal(ex.Message);return new List<ProductConfig>();}}}
}

 

4. 控制器获取

商品详细信息在ProductController的Detail方法中,根据传入的ID进行读取,如下所示:

public IActionResult Detail(int Id)
{var username = HttpContext.Session.GetString("username");var realName = HttpContext.Session.GetString("realname");ViewData["Username"] = username;ViewData["RealName"] = realName;ProductDal productDal = new ProductDal();ProductConfigDal productConfigDal = new ProductConfigDal();var product = productDal.GetProduct(Id);var productConfigList = productConfigDal.GetProductConfigListById(Id);ViewData["ProductConfigList"]=productConfigList;ViewData["Product"] = product;return View();
}

 

将获取到的Product对象和ProductConfigList列表对象通过ViewData传递到View视图层中进行展示。

5. 视图层展示

在Views/Product/Detail.cshtml中,接收控制器方法传递的数据,并进行展示。如下所示:

@{ViewData["Title"] = "商品详情";
}
@{var product = ViewData["Product"] as Product;var productConfigList = ViewData["ProductConfigList"] as List<ProductConfig>;
}
<div class=""><form method="post" id="detailForm"><input type="hidden" name="productId" value="@(product.Id)" /><input type="hidden" name="color" id="color" value="" /><input type="hidden" name="size" id="size" value="" /><!-- quick view start --><div class="container"><div class="row"><div id="view-gallery"><div class="col-xs-12"><div class="d-table" style="width:100%"><div class="d-tablecell"><div class="main-view modal-content"><div class="row"><div class="col-xs-12 col-sm-5"><div class="quick-image"><div class="single-quick-image tab-content text-center">@{var productConfigImages = productConfigList.Where(r => r.ConfigType == "Image").ToList();for (int i = 0; i < productConfigImages.Count; i++){var productConfigImage = productConfigImages[i];<div class="tab-pane  fade in @(i==0?"active":"")" id="sin-pro-@(i)"><img src="@(productConfigImage.ConfigValue)" alt=""></div>}}</div><div class="quick-thumb"><div class="nav nav-tabs"><ul style="padding-left:0px;">@{for (int i = 0; i < productConfigImages.Count; i++){var productConfigImage = productConfigImages[i];<li><a data-toggle="tab" href="##" onclick="javascript:tabProductImage('sin-pro-@(i)',this);"> <img src="@(productConfigImage.ConfigName)" alt="quick view" style="width:90px;height:90px;"> </a></li>}}</ul></div></div></div></div><div class="col-xs-12 col-sm-7"><div class="quick-right"><div class="quick-right-text"><h3><strong>@product.Name</strong></h3><div class="rating"><i class="fa fa-star"></i><i class="fa fa-star"></i><i class="fa fa-star"></i><i class="fa fa-star-half-o"></i><i class="fa fa-star-o"></i></div><div class="amount"><h4>$@product.PreferentialPrice</h4></div><p>@product.Description</p><div class="row m-p-b"><div class="col-sm-12"><div class="por-dse responsive-strok clearfix"><ul><li><span>是否现货</span><strong>:</strong> 现货</li><li><span>是否新品</span><strong>:</strong> 新品</li><li><span>商品类型</span><strong>:</strong><a href="">@product.BasicStyle</a><a href="">@product.ProductStyle</a></li></ul></div></div></div><div class="row m-p-b"><div class="col-sm-12"><div class="por-dse color"><ul><li><span>颜色分类</span><strong>:</strong><div class="por-dsc-div">@{var productColors = productConfigList.Where(r => r.ConfigType == "Color").ToList();for (int i = 0; i < productColors.Count; i++){<span class="por-dsc-span" onclick="javascript:checkActive(this,'color');">@(productColors[i].ConfigValue)</span>}}</div></li><li><span>大小</span><strong>:</strong><div class="por-dsc-div">@{var productSizes = productConfigList.Where(r => r.ConfigType == "Size").ToList();for (int i = 0; i < productSizes.Count; i++){<span class="por-dsc-span" onclick="javascript:checkActive(this,'size');">@(productSizes[i].ConfigValue)</span>}}</div></li><li><span>标签</span><strong>:</strong><a href="">@product.BasicStyle</a><a href="">@product.ProductStyle</a></li></ul></div></div></div><div class="dse-btn"><div class="row"><div class="col-sm-12 col-md-12"><div class="por-dse clearfix"><ul><li class="share-btn clearfix"><span>数量</span><input class="input-text qty" name="quantity" maxlength="12" value="1" title="数量" type="text"></li></ul></div></div><div class="col-sm-12 col-md-12"><div class="por-dse add-to" style="display:inline-block"><a href="##" onclick="javascript:addCartByForm();">加入购物车</a></div><div class="por-dse add-to" style="display:inline-block"><a href="##" onclick="javascript:addPurchaseByForm();">立即购买</a></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div><!-- quick view end --></form>
</div>
<script src="~/js/shop.js"></script>

 

商品详情页面展示

运行程序,在首页或商品列表页面,点击商品链接,进入商品详情页面,如下所示:

以上就是ASP.NET Core MVC开发实战之商城系统第四部分内容,后续将继续介绍其他模块,敬请期待。

http://www.15wanjia.com/news/173885.html

相关文章:

  • 下载 网站样板wordpress视频调整
  • 推荐坪山网站建设个人网站建设模板
  • 做app网站的软件有哪些内容吗生态农庄网站模板
  • 怎么推广自己的网站?网站推广app软件下载
  • 建设个人网站的策划书石家庄房产信息网查询系统
  • 论坛备案 和网站备案如何做解析网站
  • 学院实验室建设网站的好处鞍山新款网站制作哪家好
  • 网站团队平台推广策略都有哪些
  • js网站特效网站后台登入模板
  • 怎么做招聘网站链接推广什么意思
  • 了解网络营销相应的网站ppt接单兼职网站
  • [ 1500元做网站_验收满意再付款! ]_沛县网络公司网站建设ps模板下载
  • 企业网站建设代理加盟网站做广告费用
  • 商家入驻型网站建设兔展制作h5页面模板
  • 广州网站优化公司排名做任务赚q红包的网站
  • 如何做自己的博客网站字体在线设计网站
  • 网站备案的流程东莞城乡建设
  • 东至网站建设飞机查询网站开发的创新点
  • 自己做个网站全球十大互联网企业
  • 闵行区做网站网站移动端流量
  • 长春电商网站建设公司电话愿景 做中国最受欢迎的互联网网站
  • 网站网页制作电话天津市建设工程协会网站
  • 江宁城乡建设局网站怎么做浏览器网站吗
  • 电子商务网站建设与管理王生春网页制作优质网站
  • 找不到网站后台怎么办陕西高端品牌网站建设价格
  • 上海网站推广模板网站常用素材
  • 校友网站建设的重要性出口网站有哪些
  • 网站开发建设赚钱吗网站开发有哪些书籍
  • 网站空间不支持php自贡建设能源开发有限公司网站
  • android开发者网站自己如何做购物网站