eitaa logo
پروژه ASP.Net Core MVC (وب و سی شارپ)
120 دنبال‌کننده
168 عکس
38 ویدیو
376 فایل
❁﷽❁ آموزش 📖 برنامه نویسی ASP.Net Core MVC (وب و سی شارپ) Admin: @alialirezapanahi برنامه نویسی برنامه نویسی سی شارپ eitaa.com/sisharpapp برنامه نویسی وب eitaa.com/aspdatnet ویراستی virasty.com/alialirezapanahi آپارات aparat.com/alialirezapanahi
مشاهده در ایتا
دانلود
Test_Store 14.zip
حجم: 56.5M
ادامه درس بخش صفحه اصلی پویا که خودم اعتبار سنجی کردم بدونه کمک استاد که دیگران نگویند پروژه خطا میده
کوکی cookie سلام! بیایید ابتدا توضیح دهیم که کوکی چیست و سپس نحوه استفاده از کوکی‌ها در ASP.NET را بررسی کنیم. کوکی چیست؟ کوکی یک فایل کوچک متنی است که توسط وب‌سایت‌ها در مرورگر کاربر ذخیره می‌شود. این فایل‌ها شامل اطلاعاتی مانند تنظیمات کاربر، وضعیت نشست (session)، و شناسه‌های کاربری هستند. کوکی‌ها برای ذخیره‌سازی اطلاعات کاربر بین درخواست‌های مختلف به سرور استفاده می‌شوند. نحوه استفاده از کوکی‌ها در ASP.NET ۱. ایجاد و تنظیم کوکی برای ایجاد و تنظیم یک کوکی در ASP.NET، می‌توان از شیء HttpCookie استفاده کرد و سپس آن را به پاسخ HTTP اضافه کرد. نمونه کد: csharp public ActionResult SetCookie() { HttpCookie cookie = new HttpCookie("UserPreferences"); cookie["Theme"] = "Dark"; cookie["Font"] = "Arial"; cookie.Expires = DateTime.Now.AddDays(7); // زمان انقضای کوکی (مثلاً ۷ روز) Response.Cookies.Add(cookie); return RedirectToAction("Index"); } ۲. خواندن کوکی برای خواندن یک کوکی در ASP.NET، می‌توان از شیء HttpRequest و مجموعه Request.Cookies استفاده کرد. نمونه کد: csharp public ActionResult GetCookie() { HttpCookie cookie = Request.Cookies["UserPreferences"]; if (cookie != null) { string theme = cookie["Theme"]; string font = cookie["Font"]; ViewBag.Theme = theme; ViewBag.Font = font; } return View(); } ۳. حذف کوکی برای حذف یک کوکی، باید تاریخ انقضای کوکی را به گذشته تنظیم کنید. این کار باعث می‌شود که مرورگر کوکی را حذف کند. نمونه کد: csharp public ActionResult RemoveCookie() { if (Request.Cookies["UserPreferences"] != null) { HttpCookie cookie = new HttpCookie("UserPreferences"); cookie.Expires = DateTime.Now.AddDays(-1); // تاریخ انقضا به گذشته تنظیم شده Response.Cookies.Add(cookie); } return RedirectToAction("Index"); } گزینه‌های کوکی (Cookie Options) هنگام ایجاد یک کوکی، می‌توان گزینه‌های مختلفی را تنظیم کرد مانند زمان انقضا، دامنه، مسیر، و امنیت. نمونه کد با گزینه‌های کوکی: csharp public ActionResult SetCookieWithOptions() { HttpCookie cookie = new HttpCookie("UserPreferences") { ["Theme"] = "Dark", ["Font"] = "Arial", Expires = DateTime.Now.AddDays(7), // زمان انقضای کوکی (مثلاً ۷ روز) Path = "/", // مسیر کوکی Domain = "example.com", // دامنه کوکی Secure = true, // فقط از طریق HTTPS HttpOnly = true // فقط از طریق HTTP، دسترسی جاوااسکریپت محدود }; Response.Cookies.Add(cookie); return RedirectToAction("Index"); } نتیجه‌گیری با استفاده از این روش‌ها، می‌توانید کوکی‌ها را در ASP.NET مدیریت کنید. کوکی‌ها ابزاری قوی برای ذخیره اطلاعات کاربر در مرورگر هستند و می‌توانند تجربه کاربری بهتری را فراهم کنند.
اگر به یک کوکی تاریخ انقضا ندهید، به طور پیش‌فرض به عنوان یک کوکی نشست (session cookie) در نظر گرفته می‌شود. این بدان معناست که کوکی تا زمانی که مرورگر باز باشد معتبر خواهد بود و هنگامی که مرورگر بسته شود، کوکی به طور خودکار حذف می‌شود. نمونه کد: csharp public ActionResult SetCookieWithoutExpiration() { HttpCookie cookie = new HttpCookie("UserPreferences"); cookie["Theme"] = "Dark"; cookie["Font"] = "Arial"; // تاریخ انقضا تنظیم نمی‌شود، بنابراین به عنوان کوکی نشست در نظر گرفته می‌شود Response.Cookies.Add(cookie); return RedirectToAction("Index"); } در این مثال، کوکی‌ای که ایجاد شده است تا زمانی که مرورگر باز باشد معتبر خواهد بود و پس از بستن مرورگر، کوکی حذف می‌شود.
Test_Store 15.zip
حجم: 56.9M
افزودن به سبد خرید قسمت اول
پروژه ASP.Net Core MVC (وب و سی شارپ)
افزودن به سبد خرید قسمت اول
این کد مربوط به سرویس سبد خرید (CartService) در یک فروشگاه اینترنتی است. سرویس سبد خرید شامل عملکردهایی برای اضافه کردن محصول به سبد خرید، حذف محصول از سبد خرید، دریافت سبد خرید کاربر، افزایش تعداد یک محصول در سبد خرید و کاهش تعداد یک محصول در سبد خرید می‌باشد. بیایید نگاهی دقیق‌تر به عملکردهای مختلف این سرویس بیندازیم: تعریف Interface (رابط) ICartService csharp public interface ICartService { ResultDto AddToCart(long ProductId, Guid BrowserId); ResultDto RemoveFromCart(long ProductId, Guid BrowserId); ResultDto<CartDto> GetMyCart(Guid BrowserId); ResultDto Add(long CartItemId); ResultDto LowOff(long CartItemId); } کلاس CartService سازنده و زمینه‌های کلاس csharp public class CartService : ICartService { private readonly IDataBaseContext _context; public CartService(IDataBaseContext context) { _context = context; } IDataBaseContext از پایگاه داده استفاده می‌کند و عملیات‌های داده‌ای را فراهم می‌کند. سازنده کلاس، نمونه‌ای از IDataBaseContext را دریافت کرده و آن را در متغیر _context ذخیره می‌کند. افزودن محصول به سبد خرید csharp public ResultDto AddToCart(long ProductId, Guid BrowserId) { var cart = _context.Carts.Where(p => p.BrowserId == BrowserId && p.Finished == false).FirstOrDefault(); if (cart == null) { Cart newCart = new Cart() { Finished = false, BrowserId = BrowserId, }; _context.Carts.Add(newCart); _context.SaveChanges(); cart = newCart; } var product = _context.Products.Find(ProductId); var cartItem = _context.CartItems.Where(p => p.ProductId == ProductId && p.CartId == cart.Id).FirstOrDefault(); if (cartItem != null) { cartItem.Count++; } else { CartItem newCartItem = new CartItem() { Cart = cart, Count = 1, Price = product.Price, Product = product, }; _context.CartItems.Add(newCartItem); _context.SaveChanges(); } return new ResultDto() { IsSuccess = true, Message = $"محصول {product.Name} با موفقیت به سبد خرید شما اضافه شد", }; } ابتدا بررسی می‌شود که آیا سبد خریدی برای کاربر موجود است یا نه. اگر سبد خریدی وجود ندارد، یک سبد خرید جدید ایجاد می‌شود. سپس محصول مورد نظر در پایگاه داده جستجو می‌شود. اگر محصولی با شناسه مورد نظر در سبد خرید وجود داشته باشد، تعداد آن افزایش می‌یابد. در غیر این صورت، محصول جدیدی به سبد خرید اضافه می‌شود. افزایش تعداد یک محصول در سبد خرید csharp public ResultDto Add(long CartItemId) { var cartItem = _context.CartItems.Find(CartItemId); cartItem.Count++; _context.SaveChanges(); return new ResultDto() { IsSuccess = true, }; } محصول مورد نظر در سبد خرید بر اساس CartItemId جستجو می‌شود و تعداد آن افزایش می‌یابد. کاهش تعداد یک محصول در سبد خرید csharp public ResultDto LowOff(long CartItemId) { var cartItem = _context.CartItems.Find(CartItemId); if (cartItem.Count <= 1) { return new ResultDto() { IsSuccess = false, }; } cartItem.Count--; _context.SaveChanges(); return new ResultDto() { IsSuccess = true, }; } محصول مورد نظر در سبد خرید بر اساس CartItemId جستجو می‌شود و تعداد آن کاهش می‌یابد. اگر تعداد محصول کمتر یا برابر با ۱ باشد، عملیات کاهش ناموفق خواهد بود.
پروژه ASP.Net Core MVC (وب و سی شارپ)
افزودن به سبد خرید قسمت اول
دریافت سبد خرید کاربر csharp public ResultDto<CartDto> GetMyCart(Guid BrowserId) { var cart = _context.Carts .Include(p => p.CartItems) .ThenInclude(p => p.Product) .ThenInclude(p => p.ProductImages) .Where(p => p.BrowserId == BrowserId && p.Finished == false) .OrderByDescending(p => p.Id) .FirstOrDefault(); return new ResultDto<CartDto>() { Data = new CartDto() { CartItems = cart.CartItems.Select(p => new CartItemDto { Count = p.Count, Price = p.Price, Product = p.Product.Name, Id = p.Id, Images = p.Product?.ProductImages?.FirstOrDefault()?.Src ?? "", }).ToList(), }, IsSuccess = true, }; } سبد خرید کاربر بر اساس BrowserId جستجو می‌شود و لیستی از محصولات موجود در سبد خرید همراه با اطلاعات آن‌ها برگردانده می‌شود. حذف محصول از سبد خرید csharp public ResultDto RemoveFromCart(long ProductId, Guid BrowserId) { var cartitem = _context.CartItems.Where(p => p.Cart.BrowserId == BrowserId).FirstOrDefault(); if (cartitem != null) { cartitem.IsRemoved = true; cartitem.RemoveTime = DateTime.Now; _context.SaveChanges(); return new ResultDto { IsSuccess = true, Message = "محصول از سبد خرید شما حذف شد" }; } else { return new ResultDto { IsSuccess = false, Message = "محصول یافت نشد" }; } } محصول مورد نظر بر اساس ProductId و BrowserId جستجو می‌شود و سپس از سبد خرید حذف می‌شود. کلاس‌های DTO CartDto و CartItemDto این کلاس‌ها برای انتقال داده‌های سبد خرید و آیتم‌های سبد خرید استفاده می‌شوند. csharp public class CartDto { public List<CartItemDto> CartItems { get; set; } } public class CartItemDto { public long Id { get; set; } public string Product { get; set; } public string Images { get; set; } public int Count { get; set; } public int Price { get; set; } } CartDto شامل لیستی از CartItemDto است که اطلاعات مربوط به محصولات موجود در سبد خرید را نگهداری می‌کند. نتیجه‌گیری این کد شامل عملیاتی برای مدیریت سبد خرید در یک فروشگاه اینترنتی است. هر عملیاتی مانند افزودن محصول به سبد خرید، حذف محصول، افزایش و کاهش تعداد محصول و دریافت سبد خرید کاربر به طور کامل پیاده‌سازی شده است.
پروژه ASP.Net Core MVC (وب و سی شارپ)
افزودن به سبد خرید قسمت اول
بیایید کد را تحلیل کنیم و توضیحات هر بخش را مرور کنیم. این کد در namespace Test_Store.Domain.Entities.Carts قرار دارد و شامل دو کلاس Cart و CartItem است که سبد خرید و آیتم‌های سبد خرید را در یک فروشگاه اینترنتی مدیریت می‌کنند. کلاس Cart این کلاس نمایانگر یک سبد خرید است. csharp public class Cart : BaseEntity { public virtual User User { get; set; } public long? UserId { get; set; } public Guid BrowserId { get; set; } public bool Finished { get; set; } public ICollection<CartItem> CartItems { get; set; } } User (کاربر): این ویژگی به کاربر مرتبط با سبد خرید اشاره دارد. این رابطه به صورت مجازی (virtual) تعریف شده است، که به Entity Framework اجازه می‌دهد تا رابطه را به صورت lazy load مدیریت کند. UserId: شناسه کاربر مرتبط با سبد خرید. این مقدار می‌تواند null باشد، به این معنا که ممکن است سبد خرید بدون کاربر (مثلاً برای مهمان‌ها) ایجاد شود. BrowserId (شناسه مرورگر): یک GUID که به مرورگر کاربر اختصاص داده شده است. این ویژگی می‌تواند برای پیگیری سبد خرید کاربر حتی بدون ورود به سیستم استفاده شود. Finished (پایان یافته): یک مقدار بولی که نشان می‌دهد آیا سبد خرید کامل شده است (مثلاً خرید انجام شده است) یا خیر. CartItems (آیتم‌های سبد خرید): یک مجموعه از آیتم‌های سبد خرید که در این سبد خرید وجود دارند. این رابطه به صورت یک به چند تعریف شده است، یعنی یک سبد خرید می‌تواند چندین آیتم سبد خرید داشته باشد. کلاس CartItem این کلاس نمایانگر یک آیتم در سبد خرید است. csharp public class CartItem : BaseEntity { public virtual Product Product { get; set; } public long ProductId { get; set; } public int Count { get; set; } public int Price { get; set; } public virtual Cart Cart { get; set; } public long CartId { get; set; } } Product (محصول): این ویژگی به محصول مرتبط با آیتم سبد خرید اشاره دارد. این رابطه نیز به صورت مجازی (virtual) تعریف شده است تا Entity Framework بتواند به صورت lazy load این رابطه را مدیریت کند. ProductId: شناسه محصول مرتبط با آیتم سبد خرید. Count (تعداد): تعداد محصول در این آیتم سبد خرید. این مقدار نشان می‌دهد که چند واحد از محصول در سبد خرید قرار دارد. Price (قیمت): قیمت محصول در زمان اضافه شدن به سبد خرید. Cart (سبد خرید): این ویژگی به سبد خرید مرتبط با این آیتم اشاره دارد. این رابطه به صورت مجازی (virtual) تعریف شده است. CartId: شناسه سبد خرید مرتبط با این آیتم. نتیجه‌گیری این کلاس‌ها به همراه ویژگی‌هایشان، ساختار داده‌ای سبد خرید و آیتم‌های مرتبط با آن را در یک فروشگاه اینترنتی تعریف می‌کنند. با استفاده از این کلاس‌ها می‌توان سبد خرید کاربران را مدیریت کرد، آیتم‌ها را به سبد خرید اضافه کرد، تعداد آیتم‌ها را تغییر داد و سبد خرید را نهایی کرد.
پروژه ASP.Net Core MVC (وب و سی شارپ)
افزودن به سبد خرید قسمت اول
این کد مربوط به یک کلاس به نام CookiesManeger است که در namespace EndPoint.Site.Utilities قرار دارد. این کلاس شامل متدهایی برای مدیریت کوکی‌ها در ASP.NET Core است. بیایید هر متد را به صورت جداگانه توضیح دهیم. کلاس CookiesManeger متد Add این متد برای افزودن یک کوکی جدید به پاسخ HTTP استفاده می‌شود. csharp public void Add(HttpContext context, string token, string value) { context.Response.Cookies.Append(token, value, getCookieOptions(context)); } پارامترها: HttpContext context: زمینه درخواست HTTP. string token: نام کوکی. string value: مقدار کوکی. عملکرد: کوکی‌ای با نام token و مقدار value به پاسخ HTTP اضافه می‌کند. تنظیمات کوکی از متد getCookieOptions گرفته می‌شود. متد Contains این متد بررسی می‌کند که آیا کوکی با نام مشخصی در درخواست HTTP وجود دارد یا خیر. csharp public bool Contains(HttpContext context, string token) { return context.Request.Cookies.ContainsKey(token); } پارامترها: HttpContext context: زمینه درخواست HTTP. string token: نام کوکی. عملکرد: بررسی می‌کند که آیا کوکی با نام token در درخواست HTTP وجود دارد یا خیر و نتیجه را به صورت بولی برمی‌گرداند. متد GetValue این متد مقدار کوکی با نام مشخص را از درخواست HTTP برمی‌گرداند. csharp public string GetValue(HttpContext context, string token) { string cookieValue; if (!context.Request.Cookies.TryGetValue(token, out cookieValue)) { return null; } return cookieValue; } پارامترها: HttpContext context: زمینه درخواست HTTP. string token: نام کوکی. عملکرد: تلاش می‌کند مقدار کوکی با نام token را از درخواست HTTP دریافت کند. اگر کوکی موجود باشد، مقدار آن را برمی‌گرداند؛ در غیر این صورت، null برمی‌گرداند. متد Remove این متد کوکی با نام مشخص را از درخواست HTTP حذف می‌کند. csharp public void Remove(HttpContext context, string token) { if (context.Request.Cookies.ContainsKey(token)) { context.Response.Cookies.Delete(token); } } پارامترها: HttpContext context: زمینه درخواست HTTP. string token: نام کوکی. عملکرد: بررسی می‌کند که آیا کوکی با نام token در درخواست HTTP وجود دارد یا خیر. اگر کوکی موجود باشد، آن را حذف می‌کند. متد GetBrowserId این متد شناسه مرورگر (BrowserId) را دریافت می‌کند. اگر شناسه مرورگر وجود نداشته باشد، یک شناسه جدید ایجاد کرده و آن را به کوکی اضافه می‌کند. csharp public Guid GetBrowserId(HttpContext context) { string browserId = GetValue(context, "BowserId"); if (browserId == null) { string value = Guid.NewGuid().ToString(); Add(context, "BowserId", value); browserId = value; } Guid guidBowser; Guid.TryParse(browserId, out guidBowser); return guidBowser; } پارامترها: HttpContext context: زمینه درخواست HTTP. عملکرد: تلاش می‌کند مقدار کوکی BowserId را دریافت کند. اگر کوکی موجود نباشد، یک شناسه جدید ایجاد کرده و آن را به کوکی اضافه می‌کند. سپس شناسه مرورگر را به صورت Guid برمی‌گرداند. متد getCookieOptions این متد تنظیمات کوکی را برای افزودن به پاسخ HTTP ایجاد می‌کند. csharp private CookieOptions getCookieOptions(HttpContext context) { return new CookieOptions { HttpOnly = true, Path = context.Request.PathBase.HasValue ? context.Request.PathBase.ToString() : "/", Secure = context.Request.IsHttps, Expires = DateTime.Now.AddDays(100), }; } پارامترها: HttpContext context: زمینه درخواست HTTP. عملکرد: یک شیء CookieOptions جدید ایجاد می‌کند با تنظیمات زیر: HttpOnly: فقط از طریق HTTP قابل دسترسی باشد، نه از طریق جاوااسکریپت. Path: مسیر کوکی. Secure: کوکی فقط در درخواست‌های HTTPS ارسال شود. Expires: تاریخ انقضای کوکی (100 روز از تاریخ فعلی). نتیجه‌گیری این کلاس ابزاری را فراهم می‌کند برای مدیریت کوکی‌ها در ASP.NET Core، از جمله افزودن، حذف، بررسی وجود، و دریافت مقدار کوکی‌ها. این ابزار به شما امکان می‌دهد که به راحتی کوکی‌ها را در برنامه وب خود مدیریت کنید.
پروژه ASP.Net Core MVC (وب و سی شارپ)
افزودن به سبد خرید قسمت اول
بیایید این کد را تحلیل کنیم و توضیحات مربوط به هر بخش از کنترلر CartController را مرور کنیم. این کنترلر به عنوان یک رابط برای مدیریت سبد خرید در برنامه ASP.NET Core عمل می‌کند و شامل عملیاتی مانند افزودن محصول به سبد خرید، حذف محصول، افزایش و کاهش تعداد محصول و مشاهده سبد خرید کاربر است. فضای نام‌ها و وابستگی‌ها csharp using EndPoint.Site.Utilities; using Microsoft.AspNetCore.Mvc; using Test_Store.Application.Services.Carts; EndPoint.Site.Utilities: برای استفاده از کلاس CookiesManeger. Microsoft.AspNetCore.Mvc: برای استفاده از کنترلرها و متدهای مربوط به MVC. Test_Store.Application.Services.Carts: برای استفاده از سرویس‌های مربوط به سبد خرید. تعریف کلاس CartController csharp namespace EndPoint.Site.Controllers { public class CartController : Controller { private readonly ICartService _cartService; private readonly CookiesManeger cookiesManeger; public CartController(ICartService cartService) { _cartService = cartService; cookiesManeger = new CookiesManeger(); } متغیرهای خصوصی: _cartService: یک سرویس برای مدیریت عملیات‌های سبد خرید. cookiesManeger: یک شیء از کلاس CookiesManeger برای مدیریت کوکی‌ها. سازنده: سازنده کلاس، ICartService را به عنوان وابستگی دریافت کرده و آن را به _cartService اختصاص می‌دهد. همچنین یک نمونه از CookiesManeger ایجاد می‌کند. متد Index csharp public IActionResult Index() { var resultGetLst = _cartService.GetMyCart(cookiesManeger.GetBrowserId(HttpContext)); return View(resultGetLst.Data); } عملکرد: شناسه مرورگر (BrowserId) کاربر را از کوکی‌ها دریافت می‌کند. با استفاده از سرویس _cartService، سبد خرید کاربر را دریافت می‌کند. داده‌های سبد خرید را به ویو ارسال می‌کند. متد AddToCart csharp public IActionResult AddToCart(long ProductId) { var resultAdd = _cartService.AddToCart(ProductId, cookiesManeger.GetBrowserId(HttpContext)); return RedirectToAction("Index"); } عملکرد: شناسه مرورگر (BrowserId) کاربر را از کوکی‌ها دریافت می‌کند. محصول مورد نظر را به سبد خرید کاربر اضافه می‌کند. کاربر را به صفحه Index ریدایرکت می‌کند. متد Add csharp public IActionResult Add(long CartItemId) { _cartService.Add(CartItemId); return RedirectToAction("Index"); } عملکرد: تعداد آیتم مشخص در سبد خرید را افزایش می‌دهد. کاربر را به صفحه Index ریدایرکت می‌کند. متد LowOff csharp public IActionResult LowOff(long CartItemId) { _cartService.LowOff(CartItemId); return RedirectToAction("Index"); } عملکرد: تعداد آیتم مشخص در سبد خرید را کاهش می‌دهد. کاربر را به صفحه Index ریدایرکت می‌کند. متد Remove csharp public IActionResult Remove(long ProductId) { _cartService.RemoveFromCart(ProductId, cookiesManeger.GetBrowserId(HttpContext)); return RedirectToAction("Index"); } عملکرد: شناسه مرورگر (BrowserId) کاربر را از کوکی‌ها دریافت می‌کند. محصول مشخص را از سبد خرید کاربر حذف می‌کند. کاربر را به صفحه Index ریدایرکت می‌کند. نتیجه‌گیری این کنترلر به عنوان واسطی برای مدیریت عملیات‌های مختلف مرتبط با سبد خرید در برنامه ASP.NET Core عمل می‌کند. از سرویس‌های سبد خرید (ICartService) و مدیریت کوکی‌ها (CookiesManeger) برای انجام عملیات‌ها و پیگیری سبد خرید کاربر استفاده می‌کند.
پروژه ASP.Net Core MVC (وب و سی شارپ)
افزودن به سبد خرید قسمت اول
بیایید کد مربوط به نمایش سبد خرید در ویو را بررسی و توضیح دهیم. این کد یک ویو Razor است که از مدل CartDto برای نمایش سبد خرید کاربر استفاده می‌کند. تعریف مدل و تنظیمات csharp @using Test_Store.Application.Services.Carts; @model CartDto @{ ViewData["Title"] = "Index"; Layout = "~/Views/Shared/_Layout.cshtml"; int sumTota = 0; } @using Test_Store.Application.Services.Carts: استفاده از فضای نام برای دسترسی به مدل‌ها و سرویس‌های مربوط به سبد خرید. @model CartDto: تعریف مدل ویو که از نوع CartDto است. ViewData["Title"]: تنظیم عنوان صفحه. Layout: تعیین لایوت (چیدمان) صفحه. int sumTota: تعریف یک متغیر محلی برای مجموع کل قیمت‌ها. نمایش سبد خرید html <section class="cart-home"> <div class="post-item-cart d-block order-2"> <div class="content-page"> <div class="cart-form"> <form action="#" class="c-form"> <table class="table-cart cart table table-borderless"> <thead> <tr> <th scope="col" class="product-cart-name">نام محصول</th> <th scope="col" class="product-cart-quantity">تعداد مورد نیاز</th> <th scope="col" class="product-cart-price">قیمت</th> <th scope="col" class="product-cart-Total">مجموع</th> </tr> </thead> <tbody> @foreach (var item in Model.CartItems) { <tr> <th scope="row" class="product-cart-name"> <div class="product-thumbnail-img"> <a href="#"> <img src="~/@item.Images"> </a> <div class="product-remove"> <a href="~/cart/remove?ProductId=@item.Id" class="remove"> <i class="mdi mdi-close"></i> </a> </div> </div> <div class="product-title"> <a href="#"> @item.Product </a> </div> </th> <td class="product-cart-quantity"> <div class="required-number before"> <div class="quantity"> <input type="number" min="1" max="100" step="1" value="@item.Count" id="count-@item.Id"> <div class="quantity-nav"> <div class="quantity-button quantity-up" onclick="AddCount('@item.Id')">+</div> <div class="quantity-button quantity-down" onclick="lowCount('@item.Id')">-</div> </div> </div> </div> </td> <td class="product-cart-price"> <span class="amount"> @item.Price.ToString("n0") <span>تومان</span> </span> </td> <td class="product-cart-Total"> <span class="amount"> @{
پروژه ASP.Net Core MVC (وب و سی شارپ)
افزودن به سبد خرید قسمت اول
int total = item.Price * item.Count; } @total.ToString("n0") <span>تومان</span> </span> </td> </tr> } </tbody> </table> </form> </div> جدول سبد خرید: شامل ستون‌هایی برای نام محصول، تعداد مورد نیاز، قیمت و مجموع است. @foreach: حلقه‌ای برای تکرار آیتم‌های موجود در سبد خرید و نمایش آن‌ها. مجموع قیمت هر آیتم: محاسبه مجموع قیمت هر آیتم با ضرب قیمت واحد در تعداد و نمایش آن. نمایش جمع کل سبد خرید و گزینه‌های حمل و نقل html <div class="cart-collaterals"> <div class="totals d-block"> <h3 class="Total-cart-total">مجموع کل سبد خرید</h3> <div class="checkout-summary"> <ul class="checkout-summary-summary"> <li class="cart-subtotal"> <span class="amount">قیمت کل</span> <span> @sumTota.ToString("n0") تومان</span> </li> <li class="shipping-totals"> <span class="amount">حمل و نقل</span> <div class="shipping-totals-item"> <div class="shipping-totals-outline"> <label for="#" class="outline-radio"> <input type="radio" name="payment_method" id="payment-option-online" checked="checked"> <span class="outline-radio-check"></span> </label> <label for="#" class="shipping-totals-title-row"> <div class="shipping-totals-title">حمل و نقل رایگان</div> </label> </div> <div class="shipping-totals-outline"> <label for="#" class="outline-radio"> <input type="radio" name="payment_method" id="payment-option-online"> <span class="outline-radio-check"></span> </label> <label for="#" class="shipping-totals-title-row"> <div class="shipping-totals-title">حمل و نقل معمولی: 20,000 تومان</div> </label> </div> <span class="shipping-destination">حمل و نقل به خراسان شمالی</span> </div> </li> <li class="order-total"> <span class="amount"> مجموع</span> <span> 6,032,000 تومان</span> </li> <li class="discount-code"> <div class=" align-items-center"> <div class="col-md-7 pr mt-5"> <div class="coupon"> <form action="#"> <input type="text" name="input-coupon" class="input-coupon-code" placeholder="كد تخفیف:"> <button class="btn btn-coupon" type="submit">اعمال</button> </form> </div> </div>