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
مشاهده در ایتا
دانلود
پروژه ASP.Net Core MVC (وب و سی شارپ)
در این بخش صفحه اصلی پویا
بیایید این کد را بررسی کنیم و توضیح دهیم که هر بخش آن چه وظیفه‌ای دارد. توضیح کد ۱. اتریبیوت Area کد: csharp [Area("Admin")] این اتریبیوت مشخص می‌کند که این کنترلر مربوط به منطقه (Area) "Admin" است. مناطق (Areas) در ASP.NET Core برای سازماندهی بخش‌های مختلف برنامه به صورت جداگانه استفاده می‌شوند. با استفاده از مناطق، می‌توانید بخش‌های مدیریتی، کاربری، و دیگر بخش‌ها را به صورت جداگانه مدیریت کنید. ۲. کلاس HomePageImagesController کلاس: HomePageImagesController csharp public class HomePageImagesController : Controller { private readonly IAddHomePageImagesService _addHomePageImagesService; public HomePageImagesController(IAddHomePageImagesService addHomePageImagesService) { _addHomePageImagesService = addHomePageImagesService; } public IActionResult Index() { return View(); } public IActionResult Add() { return View(); } [HttpPost] public IActionResult Add(IFormFile file, string link, ImageLocation imageLocation) { _addHomePageImagesService.Execute(new requestAddHomePageImagesDto { file = file, ImageLocation = imageLocation, Link = link, }); return View(); } } توضیح بخش‌های مختلف کلاس: خصوصی _addHomePageImagesService: این فیلد به صورت خصوصی تعریف شده است و سرویس IAddHomePageImagesService را نگهداری می‌کند. هدف: استفاده از سرویس افزودن تصاویر جدید به صفحه اصلی. سازنده HomePageImagesController: کد: csharp public HomePageImagesController(IAddHomePageImagesService addHomePageImagesService) { _addHomePageImagesService = addHomePageImagesService; } این سازنده فیلد خصوصی _addHomePageImagesService را مقداردهی می‌کند. هدف: تزریق وابستگی (Dependency Injection) و فراهم کردن استفاده از سرویس IAddHomePageImagesService. اکشن Index: کد: csharp public IActionResult Index() { return View(); } این متد یک اکشن است که ویوی مربوط به صفحه اصلی تصاویر صفحه اصلی را باز می‌کند. هدف: نمایش صفحه اصلی تصاویر صفحه اصلی. اکشن Add (GET): کد: csharp public IActionResult Add() { return View(); } این متد یک اکشن GET است که ویوی مربوط به افزودن تصویر جدید به صفحه اصلی را باز می‌کند. هدف: نمایش فرم افزودن تصویر جدید به صفحه اصلی. اکشن Add (POST): کد: csharp [HttpPost] public IActionResult Add(IFormFile file, string link, ImageLocation imageLocation) { _addHomePageImagesService.Execute(new requestAddHomePageImagesDto { file = file, ImageLocation = imageLocation, Link = link, }); return View(); } این متد یک اکشن POST است که درخواست افزودن تصویر جدید به صفحه اصلی را پردازش می‌کند. پارامترها: IFormFile file: فایل تصویر. string link: لینک مرتبط با تصویر. ImageLocation imageLocation: محل قرارگیری تصویر در صفحه اصلی. عملیات: استفاده از سرویس IAddHomePageImagesService برای اجرای افزودن تصویر جدید. بازگرداندن ویوی افزودن تصویر. هدف: افزودن تصویر جدید به صفحه اصلی سیستم. نتیجه‌گیری این کنترلر به مدیریت تصاویر صفحه اصلی در بخش مدیریتی (Admin) برنامه می‌پردازد. شامل اکشن‌هایی برای نمایش صفحه اصلی تصاویر، نمایش فرم افزودن تصویر جدید، و پردازش درخواست افزودن تصویر جدید می‌باشد. این کنترلر از سرویس IAddHomePageImagesService استفاده می‌کند تا عملیات افزودن تصویر را به صورت جداگانه انجام دهد.
پروژه ASP.Net Core MVC (وب و سی شارپ)
در این بخش صفحه اصلی پویا
بیایید این کد ویو Razor را بررسی کنیم و توضیح دهیم که هر بخش آن چه وظیفه‌ای دارد. توضیح کد ۱. افزودن Tag Helpers کد: html @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers این خط، Tag Helperهای مربوط به Microsoft.AspNetCore.Mvc.TagHelpers را به ویو اضافه می‌کند. Tag Helperها ابزارهای قدرتمندی در ASP.NET Core هستند که به شما امکان می‌دهند تگ‌های HTML را به صورت داینامیک و با استفاده از کدهای C# پردازش کنید. ۲. استفاده از فضای نام (Namespace) کد: html @using Test_Store.Domain.Entities.HomePages این خط، فضای نام Test_Store.Domain.Entities.HomePages را به ویو اضافه می‌کند. این کار به شما امکان می‌دهد که به کلاس‌ها و Enumهای موجود در این فضای نام دسترسی داشته باشید. ۳. تنظیمات ViewData و Layout کد: html @{ ViewData["Title"] = "Add"; Layout = "~/Areas/Admin/Views/Shared/_AdminLayout.cshtml"; } این بلاک کد تنظیمات مربوط به ViewData و Layout ویو را مشخص می‌کند: ViewData["Title"] = "Add";: عنوان ویو را به "Add" تنظیم می‌کند. Layout = "~/Areas/Admin/Views/Shared/_AdminLayout.cshtml";: مسیر Layoutی که ویو باید از آن استفاده کند را تنظیم می‌کند. در اینجا Layout مربوط به بخش Admin است. ۴. ساختار HTML برای فرم ساختار اصلی: html <section class="basic-elements"> <div class="row"> <div class="col-md-12"> <div class="card"> <div class="card-header"> <div class="card-title-wrap bar-success"> <h4 class="card-title mb-0">افزودن اسلایدر جدید</h4> </div> </div> <div class="card-body"> <div class="px-3"> <div class="form"> <div class="form-body"> <form method="post" class="row" enctype="multipart/form-data"> این بخش ساختار اصلی HTML را تنظیم می‌کند و شامل تگ‌های مختلف برای طرح‌بندی و استایل‌دهی است. از کلاس‌های Bootstrap برای طرح‌بندی استفاده می‌شود. ۵. انتخاب موقعیت نمایش تصویر کد: html <div class="col-xl-3 col-lg-6 col-md-12 mb-1"> <fieldset class="form-group"> <label for="basicInput">موقعیت نمایش تصویر</label> <select name="imageLocation" asp-items="@Html.GetEnumSelectList<ImageLocation>()"></select> </fieldset> </div> این بخش شامل یک فیلد انتخاب (select) برای انتخاب موقعیت نمایش تصویر است: name="imageLocation": نام فیلد انتخاب. asp-items="@Html.GetEnumSelectList<ImageLocation>()": از کمک‌های Tag Helper برای ایجاد لیست انتخابی از مقادیر Enum ImageLocation استفاده می‌کند. ۶. فیلدهای ورودی برای لینک و تصویر کد: html <div class="col-xl-3 col-lg-6 col-md-12 mb-1"> <fieldset class="form-group"> <label for="basicInput">آدرس لینک</label> <input type="text" class="form-control" name="link"> </fieldset> </div> <div class="col-xl-3 col-lg-6 col-md-12 mb-1"> <fieldset class="form-group"> <label for="basicInput">تصویر</label> <input type="file" name="file" /> </fieldset> </div> این بخش شامل دو فیلد ورودی است: آدرس لینک: name="link": نام فیلد متن برای ورودی لینک. class="form-control": استفاده از کلاس Bootstrap برای استایل‌دهی. تصویر: name="file": نام فیلد فایل برای انتخاب تصویر. class="form-control": استفاده از کلاس Bootstrap برای استایل‌دهی. ۷. دکمه ارسال فرم کد: html <div class="col-xl-3 col-lg-12 col-md-12 mb-1"> <fieldset class="form-group"> <br /> <button class="btn btn-success col-md-12">آپلود تصویر</button> </fieldset> </div> این بخش شامل دکمه‌ای برای ارسال فرم است: class="btn btn-success col-md-12": استفاده از کلاس‌های Bootstrap برای استایل‌دهی دکمه ارسال. نتیجه‌گیری این کد یک ویو برای افزودن اسلایدر جدید به صفحه اصلی ایجاد می‌کند. از Tag Helperها و کلاس‌های Bootstrap برای استایل‌دهی و کارکرد بهتر استفاده می‌کند. فرم شامل فیلدهایی برای انتخاب موقعیت نمایش تصویر، وارد کردن آدرس لینک، انتخاب تصویر و دکمه ارسال فرم است.
پروژه ASP.Net Core MVC (وب و سی شارپ)
در این بخش صفحه اصلی پویا
بیایید این کد ویو Razor را بررسی کنیم و توضیح دهیم که هر بخش آن چه وظیفه‌ای دارد. توضیح کد ۱. تنظیمات ViewData و Layout کد: html @{ ViewData["Title"] = "Add"; Layout = "~/Areas/Admin/Views/Shared/_AdminLayout.cshtml"; } این بلاک کد تنظیمات مربوط به ViewData و Layout ویو را مشخص می‌کند: ViewData["Title"] = "Add";: عنوان ویو را به "Add" تنظیم می‌کند. Layout = "~/Areas/Admin/Views/Shared/_AdminLayout.cshtml";: مسیر Layoutی که ویو باید از آن استفاده کند را تنظیم می‌کند. در اینجا Layout مربوط به بخش Admin است. ۲. ساختار HTML برای فرم ساختار اصلی: html <section class="basic-elements"> <div class="row"> <div class="col-md-12"> <div class="card"> <div class="card-header"> <div class="card-title-wrap bar-success"> <h4 class="card-title mb-0">افزودن اسلایدر جدید</h4> </div> </div> <div class="card-body"> <div class="px-3"> <div class="form"> <div class="form-body"> <form method="post" class="row" enctype="multipart/form-data"> این بخش ساختار اصلی HTML را تنظیم می‌کند و شامل تگ‌های مختلف برای طرح‌بندی و استایل‌دهی است. از کلاس‌های Bootstrap برای طرح‌بندی استفاده می‌شود. ۳. فیلد ورودی برای لینک کد: html <div class="col-xl-3 col-lg-6 col-md-12 mb-1"> <fieldset class="form-group"> <label for="basicInput">آدرس لینک</label> <input type="text" class="form-control" name="link"> </fieldset> </div> این بخش شامل یک فیلد ورودی برای لینک است: name="link": نام فیلد متن برای ورودی لینک. class="form-control": استفاده از کلاس Bootstrap برای استایل‌دهی. ۴. فیلد ورودی برای تصویر کد: html <div class="col-xl-3 col-lg-6 col-md-12 mb-1"> <fieldset class="form-group"> <label for="basicInput">تصویر</label> <input type="file" name="file" /> </fieldset> </div> این بخش شامل یک فیلد ورودی برای انتخاب تصویر است: name="file": نام فیلد فایل برای انتخاب تصویر. ۵. دکمه ارسال فرم کد: html <div class="col-xl-3 col-lg-4 col-md-12 mb-1"> <fieldset class="form-group"> <br /> <button class="btn btn-success col-md-12">آپلود تصویر</button> </fieldset> </div> این بخش شامل دکمه‌ای برای ارسال فرم است: class="btn btn-success col-md-12": استفاده از کلاس‌های Bootstrap برای استایل‌دهی دکمه ارسال. نتیجه‌گیری این کد یک ویو برای افزودن اسلایدر جدید به صفحه اصلی ایجاد می‌کند. از کلاس‌های Bootstrap برای استایل‌دهی و کارکرد بهتر استفاده می‌کند. فرم شامل فیلدهایی برای وارد کردن آدرس لینک، انتخاب تصویر و دکمه ارسال فرم است. این فرم به کاربر امکان می‌دهد که یک اسلایدر جدید را اضافه کند و اطلاعات مربوط به آن را به سرور ارسال کند.
پروژه ASP.Net Core MVC (وب و سی شارپ)
در این بخش صفحه اصلی پویا
بیایید این کلاس ViewModel را بررسی کنیم و توضیح دهیم که هر بخش آن چه وظیفه‌ای دارد. توضیح کد کلاس HomePageViewModel کلاس: HomePageViewModel csharp public class HomePageViewModel { public List<SliderDto> Sliders { get; set; } public List<HomePageImagesDto> PageImages { get; set; } public List<ProductForSiteDto> Camera { get; set; } public List<ProductForSiteDto> Mobile { get; set; } public List<ProductForSiteDto> Laptop { get; set; } } این کلاس یک ViewModel است که به منظور انتقال داده‌ها از کنترلر به ویو در صفحه اصلی استفاده می‌شود. ViewModel ها معمولاً برای تجمیع داده‌هایی که از مدل‌های مختلف بدست می‌آیند، استفاده می‌شوند تا داده‌ها به صورت ساختاریافته به ویو ارسال شوند. کلاس HomePageViewModel دارای پنج ویژگی است که هرکدام لیستی از DTOهای مختلف را نگهداری می‌کند. توضیح ویژگی‌ها: Sliders: نوع: List<SliderDto> توضیح: این ویژگی یک لیست از SliderDto را نگهداری می‌کند که شامل اطلاعات مربوط به اسلایدرهای صفحه اصلی است. PageImages: نوع: List<HomePageImagesDto> توضیح: این ویژگی یک لیست از HomePageImagesDto را نگهداری می‌کند که شامل اطلاعات مربوط به تصاویر صفحه اصلی است. Camera: نوع: List<ProductForSiteDto> توضیح: این ویژگی یک لیست از ProductForSiteDto را نگهداری می‌کند که شامل اطلاعات مربوط به محصولات دسته‌بندی دوربین‌ها است. Mobile: نوع: List<ProductForSiteDto> توضیح: این ویژگی یک لیست از ProductForSiteDto را نگهداری می‌کند که شامل اطلاعات مربوط به محصولات دسته‌بندی موبایل‌ها است. Laptop: نوع: List<ProductForSiteDto> توضیح: این ویژگی یک لیست از ProductForSiteDto را نگهداری می‌کند که شامل اطلاعات مربوط به محصولات دسته‌بندی لپ‌تاپ‌ها است. نتیجه‌گیری این ViewModel برای انتقال داده‌های صفحه اصلی از کنترلر به ویو استفاده می‌شود. ویژگی‌های این کلاس شامل لیست‌هایی از اسلایدرها، تصاویر صفحه اصلی و محصولات در دسته‌بندی‌های مختلف است. این روش به شما امکان می‌دهد که داده‌ها را به صورت سازمان‌یافته و ساختاریافته به ویو ارسال کنید و از آن‌ها برای نمایش اطلاعات در صفحه اصلی استفاده کنید.
پروژه ASP.Net Core MVC (وب و سی شارپ)
در این بخش صفحه اصلی پویا
بیایید این کد کنترلر HomeController را بررسی و توضیح دهیم که هر بخش آن چه وظیفه‌ای دارد. توضیح کد کلاس HomeController کلاس: HomeController csharp public class HomeController : Controller { private readonly ILogger<HomeController> _logger; private readonly IGetSliderService _getSliderService; private readonly IGetHomePageImagesService _homePageImagesService; private readonly IProductFacad _productFacad; public HomeController(ILogger<HomeController> logger , IGetSliderService getSliderService , IGetHomePageImagesService homePageImagesService , IProductFacad productFacad) { _logger = logger; _getSliderService = getSliderService; _homePageImagesService = homePageImagesService; _productFacad = productFacad; } public IActionResult Index() { HomePageViewModel homePage = new HomePageViewModel() { Sliders = _getSliderService.Execute().Data, PageImages = _homePageImagesService.Execute().Data, Camera = _productFacad.GetProductForSiteService.Execute(Ordering.theNewest , null, 1, 6, 25).Data.Products, }; return View(homePage); } public IActionResult Privacy() { return View(); } [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] public IActionResult Error() { return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); } } توضیح بخش‌های مختلف کلاس: اعضای خصوصی (private) ILogger<HomeController> _logger: این عضو برای لاگ‌گیری و ثبت رویدادها استفاده می‌شود. IGetSliderService _getSliderService: این عضو برای دریافت اسلایدرهای صفحه اصلی استفاده می‌شود. IGetHomePageImagesService _homePageImagesService: این عضو برای دریافت تصاویر صفحه اصلی استفاده می‌شود. IProductFacad _productFacad: این عضو برای دریافت محصولات صفحه اصلی استفاده می‌شود. سازنده HomeController csharp public HomeController(ILogger<HomeController> logger , IGetSliderService getSliderService , IGetHomePageImagesService homePageImagesService , IProductFacad productFacad) { _logger = logger; _getSliderService = getSliderService; _homePageImagesService = homePageImagesService; _productFacad = productFacad; } این سازنده فیلدهای خصوصی را مقداردهی می‌کند: هدف: تزریق وابستگی‌ها (Dependency Injection) و فراهم کردن استفاده از سرویس‌ها و لاگ‌گیری. اکشن Index csharp public IActionResult Index() { HomePageViewModel homePage = new HomePageViewModel() { Sliders = _getSliderService.Execute().Data, PageImages = _homePageImagesService.Execute().Data, Camera = _productFacad.GetProductForSiteService.Execute(Ordering.theNewest , null, 1, 6, 25).Data.Products, }; return View(homePage); } این متد یک اکشن است که ویوی مربوط به صفحه اصلی را باز می‌کند: ایجاد ViewModel صفحه اصلی: داده‌های اسلایدرها، تصاویر صفحه اصلی و محصولات (دوربین‌ها) را از سرویس‌های مختلف دریافت می‌کند و در یک ViewModel قرار می‌دهد. بازگرداندن ویو: ViewModel صفحه اصلی را به ویو ارسال می‌کند. هدف: نمایش داده‌های صفحه اصلی به کاربر. اکشن Privacy csharp public IActionResult Privacy() { return View(); } این متد یک اکشن است که ویوی مربوط به صفحه حریم خصوصی را باز می‌کند: هدف: نمایش صفحه حریم خصوصی. اکشن Error csharp [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] public IActionResult Error() { return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); } این متد یک اکشن است که در صورت بروز خطا اجرا می‌شود: عدم کش‌سازی پاسخ: استفاده از ResponseCache برای جلوگیری از کش‌سازی پاسخ. ایجاد مدل خطا: ایجاد یک شیء ErrorViewModel با شناسه درخواست (RequestId). بازگرداندن ویو: بازگرداندن ویو خطا همراه با مدل خطا.
پروژه ASP.Net Core MVC (وب و سی شارپ)
در این بخش صفحه اصلی پویا
نتیجه‌گیری این کنترلر به مدیریت صفحات اصلی سایت می‌پردازد. شامل اکشن‌هایی برای نمایش صفحه اصلی، صفحه حریم خصوصی و صفحه خطا می‌باشد. این کنترلر از سرویس‌های مختلف برای دریافت داده‌های مربوط به اسلایدرها، تصاویر صفحه اصلی و محصولات استفاده می‌کند و این داده‌ها را به ویو ارسال می‌کند تا به کاربر نمایش داده شوند.
پروژه ASP.Net Core MVC (وب و سی شارپ)
در این بخش صفحه اصلی پویا
بیایید این بخش از کد ویو Razor برای صفحه اصلی را بررسی کنیم و توضیح دهیم که هر بخش آن چه وظیفه‌ای دارد. توضیح کد ۱. بخش اسلایدر (slider-box) کد: html <div class="slider-box"> <div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel"> <ol class="carousel-indicators"> <li data-target="" data-slide-to="0" class="active"></li> @for (int i = 1; i <= Model.Sliders.Count - 1; i++) { <li data-target="" data-slide-to="@i" ></li> } </ol> <div class="carousel-inner"> @foreach (var item in Model.Sliders) { if (_sliderCount == 1) { <div class="carousel-item active"> <a href="@item.Link"> <img src="~/@item.Src" class="d-block w-100" alt="..."> </a> </div> } else { <div class="carousel-item"> <a href="@item.Link"> <img src="~/@item.Src" class="d-block w-100" alt="..."> </a> </div> } _sliderCount++; } </div> <a class="carousel-control-prev" href="" role="button" data-slide="prev"> <span class="fa fa-angle-left" aria-hidden="true"></span> <span class="sr-only">Previous</span> </a> <a class="carousel-control-next" href="" role="button" data-slide="next"> <span class="fa fa-angle-right" aria-hidden="true"></span> <span class="sr-only">Next</span> </a> </div> </div> توضیح: ساختار کلی اسلایدر: استفاده از کلاس‌های carousel و carousel slide برای ایجاد یک اسلایدر با استفاده از Bootstrap. carousel-indicators: نمایش نقاط نمایانگر که نشان‌دهنده تعداد اسلایدها هستند. لیست نقاط: استفاده از یک حلقه for برای ایجاد نقاط به ازای تعداد اسلایدها. carousel-inner: شامل تمام اسلایدها. @foreach: حلقه‌ای برای ایجاد هر اسلاید. بررسی اولین اسلاید: اگر اولین اسلاید است، کلاس active به آن اضافه می‌شود. تصویر اسلاید: نمایش تصویر هر اسلاید با استفاده از مسیر Src و لینک مرتبط با آن. ۲. نمایش تصاویر تبلیغاتی کد: html <div class="col-lg-3 col-md-4 col-xs-12 pl mt-1"> <div class="adplacement-container-column"> <a href="#" class="adplacement-item"> <div class="adplacement-sponsored-box"> <img src="~/@Model.PageImages.Where(p => p.ImageLocation == ImageLocation.L1)?.FirstOrDefault()?.Src ?? '' "> </div> </a> <a href="#" class="adplacement-item"> <div class="adplacement-sponsored-box"> <img src="~/@Model.PageImages.Where(p => p.ImageLocation == ImageLocation.L2)?.FirstOrDefault()?.Src ?? ''"> </div> </a> </div> </div> توضیح: نمایش تصاویر تبلیغاتی در مکان‌های L1 و L2: فیلتر کردن تصاویر: استفاده از LINQ برای انتخاب تصاویری که محل قرارگیری آن‌ها ImageLocation.L1 و ImageLocation.L2 باشد. اولین تصویر مناسب: استفاده از FirstOrDefault برای انتخاب اولین تصویر که معیار را برآورده می‌کند. مسیر تصویر: استفاده از خاصیت Src برای نمایش تصویر. ۳. بنر تصویر مرکز تمام صفحه کد: html <div class="-container-column mt-4"> <a href="#" class="adplacement-item img-banner"> <div class="adplacement-sponsored-box"> <img src="~/@Model.PageImages.Where(p => p.ImageLocation == ImageLocation.R1)?.FirstOrDefault()?.Src ?? ''"> </div> </a> </div> توضیح: نمایش تصویر در مکان R1: فیلتر کردن تصاویر: استفاده از LINQ برای انتخاب تصویری که محل قرارگیری آن ImageLocation.R1 باشد. اولین تصویر مناسب: استفاده از FirstOrDefault برای انتخاب اولین تصویر که معیار را برآورده می‌کند. مسیر تصویر: استفاده از خاصیت Src برای نمایش تصویر.
پروژه ASP.Net Core MVC (وب و سی شارپ)
در این بخش صفحه اصلی پویا
۴. اسلایدر دوربین عکاسی کد: html <div class="one-slider"> <h4>دوربین عکاسی</h4> <div class="owl-carousel owl-theme ov1"> @foreach (var item in Model.PageImages.Where(p => p.ImageLocation == ImageLocation.G1).ToList()) { <div class="item"> <figure> <a href=""><img src="~/@item.Src" class="w-100" /></a> </figure> <h5>Adata d5-32G</h5> <span>112.000 تومان</span> </div> } </div> </div> توضیح: اسلایدر محصولات دوربین عکاسی: فیلتر کردن تصاویر: استفاده از LINQ برای انتخاب تصاویری که محل قرارگیری آن‌ها ImageLocation.G1 باشد. حلقه @foreach: ایجاد اسلایدها به ازای هر تصویر فیلتر شده. نمایش تصویر: استفاده از خاصیت Src برای نمایش تصویر. نمایش نام و قیمت محصول: نمایش نمونه‌ای از نام و قیمت محصول به صورت استاتیک. ۵. بنر تصویر تمام صفحه مرکزی کد: html <div class="col-12"> <a href="#" class="adplacement-item mb-4"> <div class="adplacement-sponsored_box"> <img src="~/@Model.PageImages.Where(p => p.ImageLocation == ImageLocation.CenterFullScreen)?.FirstOrDefault()?.Src ?? ''"> </div> </a> </div> توضیح: نمایش تصویر در مکان CenterFullScreen: فیلتر کردن تصاویر: استفاده از LINQ برای انتخاب تصویری که محل قرارگیری آن ImageLocation.CenterFullScreen باشد. اولین تصویر مناسب: استفاده از FirstOrDefault برای انتخاب اولین تصویر که معیار را برآورده می‌کند. مسیر تصویر: استفاده از خاصیت Src برای نمایش تصویر. ۶. اسلایدر محصولات موبایل و تبلت کد: html <div class="two-slider"> <h4>موبایل و تبلت</h4> <div class="owl-carousel owl-theme ov2"> @foreach (var item in Model.PageImages.Where(p => p.ImageLocation == ImageLocation.G2).ToList()) { <div class="item"> <figure> <a href=""><img src="~/@item.Src" class="w-100" /></a> </figure> <h5>Adata d5-32G</h5> <span>112.000 تومان</span> </div> } </div> </div> توضیح: اسلایدر محصولات موبایل و تبلت: فیلتر کردن تصاویر: استفاده از LINQ برای انتخاب تصاویری که محل قرارگیری آن‌ها ImageLocation.G2 باشد. حلقه @foreach: ایجاد اسلایدها به ازای هر تصویر فیلتر شده. نمایش تصویر: استفاده از خاصیت Src برای نمایش تصویر. نمایش نام و قیمت محصول: نمایش نمونه‌ای از نام و قیمت محصول به صورت استاتیک. نتیجه‌گیری این کد ویو برای صفحه اصلی شامل نمایش اسلایدر اصلی، تصاویر تبلیغاتی و بنرها، و اسلایدرهای محصولات مختلف است. از کلاس‌های Bootstrap و Owl Carousel برای استایل‌دهی و ایجاد کاروسل‌ها استفاده می‌کند. داده‌ها از مدل ViewModel دریافت می‌شوند و به صورت داینامیک در صفحه نمایش داده می‌شوند.
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"); } در این مثال، کوکی‌ای که ایجاد شده است تا زمانی که مرورگر باز باشد معتبر خواهد بود و پس از بستن مرورگر، کوکی حذف می‌شود.