国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

[回饋]ASP.NET Core MVC開發(fā)實戰(zhàn)之商城系統(tǒng)(二)

這篇具有很好參考價值的文章主要介紹了[回饋]ASP.NET Core MVC開發(fā)實戰(zhàn)之商城系統(tǒng)(二)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

經(jīng)過一段時間的準(zhǔn)備,新的一期【ASP.NET Core MVC開發(fā)實戰(zhàn)之商城系統(tǒng)】已經(jīng)開始,在之前的文章中,講解了商城系統(tǒng)的整體功能設(shè)計,頁面布局設(shè)計,環(huán)境搭建,系統(tǒng)配置,及首頁商品類型,banner條,友情鏈接等功能的開發(fā),今天繼續(xù)講解首頁的降價促銷,新品爆款等內(nèi)容,僅供學(xué)習(xí)分享使用,如有不足之處,還請指正。

[回饋]ASP.NET Core MVC開發(fā)實戰(zhàn)之商城系統(tǒng)(二)

?

開發(fā)工具及技術(shù)

?

在本商城系統(tǒng)實例中,主要用到的開發(fā)工具和技術(shù),如下所示:

  • 開發(fā)工具,Visual Studio 2022?
  • 數(shù)據(jù)庫,SQL Server Management Studio 2012
  • 開發(fā)框架,基于.Net 6.0的ASP.NET Core MVC
  • 前端框架,基于項目自帶的bootstrap,jQuery等前端庫。

?

頁面布局

?

根據(jù)前一篇文章的講解,在首頁除了商品類型,banner條,友情鏈接外,還有降價促銷,新品爆款兩個部分,為首頁產(chǎn)品展示的核心,具體布局如下所示:

[回饋]ASP.NET Core MVC開發(fā)實戰(zhàn)之商城系統(tǒng)(二)

?

數(shù)據(jù)表設(shè)計

?

首先設(shè)計產(chǎn)品表Product,主要用于存儲產(chǎn)品的詳細(xì)信息,包括產(chǎn)品名稱,價格,店鋪ID等內(nèi)容,具體如下所示:

[回饋]ASP.NET Core MVC開發(fā)實戰(zhàn)之商城系統(tǒng)(二)

建表語句,如下所示:

CREATE TABLE [dbo].[EB_Product](
	[Id] [bigint] IDENTITY(1,1) NOT NULL,
	[ShopId] [bigint] NULL,
	[Name] [varchar](100) NULL,
	[CategoryId] [bigint] NULL,
	[SubCategoryId] [bigint] NULL,
	[Price] [money] NULL,
	[Preferential] [numeric](18, 4) NULL,
	[PreferentialPrice] [money] NULL,
	[Description] [text] NULL,
	[Brand] [varchar](50) NULL,
	[BasicStyle] [varchar](50) NULL,
	[ProductStyle] [varchar](50) NULL,
	[Year] [varchar](50) NULL,
	[Season] [varchar](50) NULL,
	[Scenario] [varchar](50) NULL,
	[ImageUrl] [varchar](500) NULL,
	[CreateTime] [datetime] NULL,
	[CreateUser] [varchar](50) NULL,
	[LastEditTime] [datetime] NULL,
	[LastEditUser] [varchar](50) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

?

商品實體創(chuàng)建

?

產(chǎn)品表對應(yīng)的項目模型實體,和數(shù)據(jù)表一一對應(yīng),如下所示:

using SqlSugar;

namespace EasyBuyShop.Models
{
    [SugarTable("EB_Product")]
    public class Product : EntityModel
    {
        /// <summary>
        /// 店鋪ID
        /// </summary>
        public long ShopId { get; set; }

        /// <summary>
        /// 產(chǎn)品名稱
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 大類ID
        /// </summary>
        public long CategoryId { get; set; }

        /// <summary>
        /// 小類ID
        /// </summary>
        public long SubCategoryId { get; set; }

        /// <summary>
        /// 價格
        /// </summary>
        public decimal Price { get; set; }

        /// <summary>
        /// 打折后價格
        /// </summary>
        public decimal PreferentialPrice { get; set; }

        /// <summary>
        /// 品牌
        /// </summary>
        public string Brand { get; set; }

        /// <summary>
        /// 折扣
        /// </summary>
        public decimal Preferential { get; set; }
        public string Description { get; set; }

        /// <summary>
        /// 基礎(chǔ)風(fēng)格
        /// </summary>
        public string BasicStyle { get; set; }

        /// <summary>
        /// 產(chǎn)品風(fēng)格
        /// </summary>
        public string ProductStyle { get; set; }

        /// <summary>
        /// 年份
        /// </summary>
        public string Year { get; set; }

        /// <summary>
        /// 季節(jié)
        /// </summary>
        public string Season { get; set; }

        /// <summary>
        /// 主要場景
        /// </summary>
        public string Scenario { get; set; }

        /// <summary>
        /// 主圖片Url
        /// </summary>
        public string ImageUrl { get; set; }
    }
}

?

數(shù)據(jù)處理層DAL

?

數(shù)據(jù)處理層用于和數(shù)據(jù)庫進行交互,本次主要用于獲取折扣Top3,和新品Top100這兩種條件的的商品列表,如下所示:

using EasyBuyShop.Models;
using EasyBuyShop.Utils;

namespace EasyBuyShop.DAL
{
    public class ProductDal:BaseDal
    {
        /// <summary>
        /// 新品前100
        /// </summary>
        /// <returns></returns>
        public List<Product> GetTopNew100()
        {
            try
            {
                using (var db = this.GetDb(BaseDal.ConnStr))
                {
                    return db.Queryable<Product>().OrderByDescending(r => r.Id).Take(100).ToList();
                }
            }
            catch (Exception ex)
            {
                LogHelper.Fatal(ex.Message);
                return new List<Product>();
            }
        }

        /// <summary>
        /// 折扣Top3
        /// </summary>
        /// <returns></returns>
        public List<Product> GetTopDisCount3()
        {
            try
            {
                using (var db = this.GetDb(BaseDal.ConnStr))
                {
                    return db.Queryable<Product>().OrderByDescending(r => r.Preferential).Take(3).ToList();
                }
            }
            catch (Exception ex)
            {
                LogHelper.Fatal(ex.Message);
                return new List<Product>();
            }
        }
    }
}

注意:上述功能采用SqlSugar自帶的方法實現(xiàn),會根據(jù)Lamada表達式生成對應(yīng)的SQL語句,可減少手寫SQL的繁瑣。

?

控制器獲取

?

因為降價促銷和新品爆款,也是首頁的一部分,所以需要在首頁控制器HomeController中,獲取對應(yīng)商品,傳遞到視圖層,如下所示:

using EasyBuyShop.DAL;
using EasyBuyShop.Models;
using Microsoft.AspNetCore.Mvc;
using System.Diagnostics;

namespace EasyBuyShop.Controllers
{
    public class HomeController : Controller
    {
        private readonly ILogger<HomeController> logger;

        public HomeController(ILogger<HomeController> logger)
        {
            this.logger = logger;
        }

        public IActionResult Index()
        {
            CategoryDal categoryDal = new CategoryDal();
            SubCategoryDal subCategoryDal = new SubCategoryDal();
            ProductDal productDal = new ProductDal();
            var categories = categoryDal.GetCategories();
            var subCategories = subCategoryDal.GetSubCategories();
            var topNew100Product = productDal.GetTopNew100();
            var topDiscount3Product = productDal.GetTopDisCount3();
            ViewData["Categories"] = categories;
            ViewData["SubCategories"] = subCategories;
            ViewData["TopNew100"] = topNew100Product;
            ViewData["TopDiscount3"] = topDiscount3Product;
            var username = HttpContext.Session.GetString("username");
            var realName = HttpContext.Session.GetString("realname");
            ViewBag.Username = username;
            ViewBag.RealName = realName;
            return View();
        }
    }
}

注意:控制器方法中,往視圖層傳遞數(shù)據(jù)采用ViewData和ViewBag實現(xiàn),也可采用其他方式實現(xiàn)。具體ViewData和ViewBag傳遞數(shù)據(jù)之間的差異,可參考之前寫的相關(guān)文章。

?

視圖層展示

?

在Views/Home/Index.cshtml視圖頁面中,降價促銷為一行三列,展示降價Top3的商品,具體如下所示:

<!-- banner style 2 start -->
<div class="banner-style-2 pt-100">
	<div class="container" style="margin-left:0px;margin-right:0px;padding-right:0px;padding-left:0px;">
		<div class="row">
			@foreach (var topDiscount in ViewData["TopDiscount3"] as List<Product>)
			{
				<div class="col-md-4">
					<div class="banner-style-2-img mb-res">
						<img src="@topDiscount.ImageUrl" alt="">
						<div class="banner-style-2-dec">
							<h4>@topDiscount.Brand</h4>
							<h3>降價 @(Math.Round( topDiscount.Preferential*100,0))% 銷售</h3>
							<a href="" onclick="javascript:buy(@(topDiscount.Id));return false;">購買</a><br>
						</div>
					</div>
					<div class="shop-title f-left">
						<h3><a href="/Product/Detail/@(topDiscount.Id)">@topDiscount.Name</a></h3>
					</div>
				</div>
			}
		</div>
	</div>
</div>
<!-- banner style 2 end -->

新品爆款為一行四列,展示新品信息,源碼如下所示:

<!-- shop area start -->
<div class="portfolio-area pt-100 pb-70" style="padding-top:100px;padding-bottom:70px;">
	<div class="container">
		<div class="section-title text-center mb-50">
			<h2>新品爆款 <i class="fa fa-shopping-cart"></i></h2>
		</div>
		<div class="row portfolio-style-2">
			<div class="grid" style="position: relative; height: 100%;">
				@foreach (var topNewProduct in ViewData["TopNew100"] as List<Product>)
				{
					<div class="col-md-3 col-sm-6 col-xs-12 mb-30">
						<div class="single-shop">
							<div class="shop-img">
								<a href="/Product/Detail/@(topNewProduct.Id)"><img src="@topNewProduct.ImageUrl" alt=""></a>
								<div class="shop-quick-view">
									<a href="/Product/Detail/@(topNewProduct.Id)" data-toggle="modal" data-target="#quick-view" title="預(yù)覽">
										<i class="pe-7s-look"></i>
									</a>
								</div>
								<div class="price-up-down">
									<span class="sale-new">新品</span>
								</div>
								<div class="button-group">
									<a href="#" title="添加購物車" onclick="javascript:addCart(@(topNewProduct.Id));return false;">
										<i class="pe-7s-cart"></i>
										添加購物車
									</a>
									<a class="wishlist" href="#" onclick="javascript:buy(@(topNewProduct.Id));return false;" title="立即購買">
										<i class="pe-7s-like"></i>
										立即購買
									</a>
								</div>
							</div>
							<div class="shop-text-all">
								<div class="title-color fix">
									<div class="shop-title f-left">
										<h3><a href="/Product/Detail/@(topNewProduct.Id)">@topNewProduct.Name</a></h3>
									</div>
									<span class="price f-right">
										<span class="new">$@topNewProduct.PreferentialPrice</span>
									</span>
								</div>
								<div class="fix">
									<span class="f-left">@(topNewProduct.BasicStyle) | @(topNewProduct.ProductStyle)</span>
								</div>
							</div>
						</div>
					</div>
				}
			</div>
		</div>
	</div>
</div>
<!-- shop area end -->

注意:其中視圖層代碼,采用Razor表達式for循環(huán),展示列表中的內(nèi)容。關(guān)于Razor表達式的使用可參考其他文章。

?

頁面展示

?

降價促銷功能,運行如下所示:

[回饋]ASP.NET Core MVC開發(fā)實戰(zhàn)之商城系統(tǒng)(二)

新品爆款功能,運行如下所示:

[回饋]ASP.NET Core MVC開發(fā)實戰(zhàn)之商城系統(tǒng)(二)

以上就是ASP.NET Core MVC開發(fā)實戰(zhàn)之商城系統(tǒng)第二部分內(nèi)容,后續(xù)將繼續(xù)介紹其他模塊,敬請期待。文章來源地址http://www.zghlxwxcb.cn/news/detail-600429.html

到了這里,關(guān)于[回饋]ASP.NET Core MVC開發(fā)實戰(zhàn)之商城系統(tǒng)(二)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • [回饋]ASP.NET Core MVC開發(fā)實戰(zhàn)之商城系統(tǒng)(六)

    [回饋]ASP.NET Core MVC開發(fā)實戰(zhàn)之商城系統(tǒng)(六)

    經(jīng)過一段時間的準(zhǔn)備,新的一期【ASP.NET Core MVC開發(fā)實戰(zhàn)之商城系統(tǒng)】已經(jīng)開始,在之前的文章中,講解了商城系統(tǒng)的整體功能設(shè)計,頁面布局設(shè)計,環(huán)境搭建,系統(tǒng)配置,及首頁【商品類型,banner條,友情鏈接,降價促銷,新品爆款】,商品列表頁面,商品詳情,購物車等功

    2024年02月11日
    瀏覽(24)
  • [回饋]ASP.NET Core MVC開發(fā)實戰(zhàn)之商城系統(tǒng)(開篇)

    [回饋]ASP.NET Core MVC開發(fā)實戰(zhàn)之商城系統(tǒng)(開篇)

    在編程方面,從來都是實踐出真知,書讀百遍其義自見,所以實戰(zhàn)是最好的提升自己編程能力的方式。 前一段時間,寫了一些實戰(zhàn)系列文章,如: ASP.NET MVC開發(fā)學(xué)生信息管理系統(tǒng) Vue+Antdv+Asp.net WebApi開發(fā)學(xué)生信息管理系統(tǒng) WPF+Prism+MAH+Asp.net Web Api開發(fā)學(xué)生信息管理系統(tǒng) ASP.NET C

    2024年02月16日
    瀏覽(22)
  • [回饋]ASP.NET Core MVC開發(fā)實戰(zhàn)之商城系統(tǒng)(完:內(nèi)附源碼)

    [回饋]ASP.NET Core MVC開發(fā)實戰(zhàn)之商城系統(tǒng)(完:內(nèi)附源碼)

    經(jīng)過一段時間的準(zhǔn)備,【ASP.NET Core MVC開發(fā)實戰(zhàn)之商城系統(tǒng)】已經(jīng)完成,目前代碼已開發(fā)完成,先將全部內(nèi)容整理分享,如有不足之處,還請指正。 ? ? 本系列文章主要講解了商城系統(tǒng)的整體功能設(shè)計,頁面布局設(shè)計,環(huán)境搭建,系統(tǒng)配置,及首頁【商品類型,banner條,友情

    2024年02月11日
    瀏覽(21)
  • asp.net core 框架搭建2-搭建MVC后臺管理系統(tǒng)

    asp.net core 框架搭建2-搭建MVC后臺管理系統(tǒng)

    作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/131458964 asp.net core 框架搭建2-搭建MVC后臺管理系統(tǒng) ,本文章介紹asp.net core框架搭建,然后開發(fā)一個后臺管理系統(tǒng),將一步步帶著大家,實現(xiàn)目標(biāo)。所有操作過程將展現(xiàn)在本篇文章,下面咋們一起來實現(xiàn)它吧。 使

    2024年02月12日
    瀏覽(20)
  • ASP.NET Core MVC -- 將視圖添加到 ASP.NET Core MVC 應(yīng)用

    ASP.NET Core MVC -- 將視圖添加到 ASP.NET Core MVC 應(yīng)用

    右鍵單擊“視圖”文件夾,然后單擊“添加”“新文件夾”,并將文件夾命名為“HelloWorld”。 右鍵單擊“Views/HelloWorld”文件夾,然后單擊“添加”“新項”。 在“添加新項 - MvcMovie”對話框中: 在右上角的搜索框中,輸入“視圖” 選擇“Razor 視圖 - 空” 保持“名稱”框的

    2024年02月13日
    瀏覽(125)
  • ASP.NET Core MVC -- 入門

    ASP.NET Core MVC -- 入門

    ?帶有 ASP.NET 和 Web 開發(fā)工作負(fù)載的Visual Studio Visual Studio Code Visual Studio Code 用于 Visual Studio Code 的 C#(最新版本) .NET 7.0 SDK ?ctrl + F5 (開始執(zhí)行,不調(diào)試) 在代碼工作區(qū)間文件夾路徑下打開終端運行下面的命令 ?通過運行以下命令來信任 HTTPS 開發(fā)證書: 編譯運行

    2024年02月11日
    瀏覽(46)
  • ASP.NET Core 中的 MVC架構(gòu)

    ASP.NET Core 中的 MVC架構(gòu)

    MVC架構(gòu)把 App 按照邏輯分成三層: Controllers,接收 http request,配合 model,通過http response 返回 view,盡量不做別的事 Models, 負(fù)責(zé)業(yè)務(wù)邏輯,App 的狀態(tài),以及數(shù)據(jù)處理 Views,呈現(xiàn) UI,如果UI 較復(fù)雜,應(yīng)該使用View 組件, ViewModel, 或者 view 模板 Controller ASP.NET Core MVC 中的所有 Control

    2024年02月09日
    瀏覽(18)
  • ASP.NET Core MVC -- 控制器

    ASP.NET Core MVC -- 控制器

    默認(rèn)控制器訪問index 特定訪問路徑 ? 特定路徑訪問,帶參數(shù)

    2024年02月12日
    瀏覽(27)
  • 基于ASP.NET MVC開發(fā)的、開源的個人博客系統(tǒng)

    基于ASP.NET MVC開發(fā)的、開源的個人博客系統(tǒng)

    推薦一個功能豐富、易于使用和擴展的開源博客,可以輕松地創(chuàng)建和管理自己的博客。 基于.Net Framework 4.5開發(fā)的、開源博客系統(tǒng),具有豐富的功能,包括文章發(fā)布、分類、標(biāo)簽、評論、訂閱、統(tǒng)計等功能,同時也可以根據(jù)需要進行自定義擴展。 提供了豐富的配置選項和API,

    2024年02月14日
    瀏覽(29)
  • 【ASP.NET Core】MVC過濾器:運行流程

    【ASP.NET Core】MVC過濾器:運行流程

    MVC 的過濾器(Filters)也翻譯為“篩選器”。但是老周更喜歡翻譯為“過濾器”,意思上更好理解。 既然都叫過濾器了,就是在MVC的操作方法調(diào)用前后進行特殊處理的類型。比如: a、此調(diào)用是否已授權(quán)? b、在模型綁定之前要不要修改數(shù)據(jù)源?(可能含有兒童不宜的數(shù)據(jù))

    2024年02月05日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包