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
مشاهده در ایتا
دانلود
کنترل ها معمولا در پوشه Controllers قرار می دهند و اگر کنترل ها زیاد باشد برای جلوگیری از سردگمی و مدیریت فایل ها می توانید در داخل پوشه Controllers پوشه هایی ایجاد کنید و از این پوشه ها برای تقسیم بندی کنترل ها استفاده کنید
برای ایجاد کنترل پوشه Controllers راست کلیک کنید و در قسمت Add گزینه Controllers انتخاب کنید سه گزینه دارد 1-کنترلر MVC خالی (Empty MVC Controller): این نوع کنترلر، یک کنترلر خالی بدون هیچ‌گونه اکشن‌های پیش‌فرض یا ویو‌ها است. معمولاً برای زمانی که نیاز به ایجاد یک کنترلر سفارشی با اکشن‌ها و ویوهای خاص دارید، استفاده می‌شود. 2-کنترلر MVC با اکشن‌های خواندن/نوشتن (MVC Controller with Read/Write Actions): این نوع کنترلر شامل اکشن‌های استاندارد برای عملیات CRUD (ایجاد، خواندن، بروز رسانی، حذف) است. این اکشن‌ها به شما اجازه می‌دهند تا به صورت پیش‌فرض با داده‌ها کار کنید و آن‌ها را در نمایه‌های مختلف نمایش دهید یا تغییر دهید. 3-کنترلر MVC با ویو، استفاده از Entity Framework (MVC Controller with View, using Entity Framework): این نوع کنترلر از Entity Framework برای مدیریت داده‌ها استفاده می‌کند و به صورت خودکار ویوهایی برای عملیات CRUD ایجاد می‌کند. این نوع کنترلر به شما اجازه می‌دهد تا به راحتی با پایگاه داده ارتباط برقرار کنید و داده‌ها را در ویوها نمایش دهید یا ویرایش کنید.
اول mvc controller empty را انتخاب می کنیم در نام گذاری انتهای نام کنترل کلمه controller قرار می دهند کنترل هایی که ایجاد می کنیم همون کلاس سی شارپ هستند
یک کنترل جدید می سازیم به نام BlogController کنترل یک کلاسی هست که به درخواست کاربران رسیدگی می کند هر کنترلی به تعداد نامحدود Action داشته باشد که کاربران درخواست های خودشون به Action ها ارسال می کند در Asp.Net Core MVC، یک Action متدی در کنترلر است که به درخواست HTTP پاسخ می‌دهد. هر Action در کنترلر برای پردازش و پاسخ به یک نوع خاص از درخواست HTTP، مثل GET، POST، PUT، DELETE و غیره، طراحی شده است. برای مثال: public class HomeController : Controller { // این اکشن به درخواست‌های GET پاسخ می‌دهد public IActionResult Index() { return View(); } // این اکشن به درخواست‌های POST پاسخ می‌دهد [HttpPost] public IActionResult Create(Item item) { // منطق ایجاد آیتم جدید return RedirectToAction("Index"); } } در این مثال، اکشن Index به درخواست‌های GET پاسخ می‌دهد و اکشن Create به درخواست‌های POST پاسخ می‌دهد. هر اکشن می‌تواند داده‌ها را پردازش کند، منطق خاصی را اجرا کند و در نهایت یک پاسخ (مثلاً یک ویو) به مرورگر ارسال کند
یک مثال: Action را به string تغییر می دهم و در خروجی یک متنی را تایپ کنم که وقتی کنترل و این Action را صدا زدم در خروجی ای متن به من برگشت بده using Microsoft.AspNetCore.Mvc; namespace ASP.NETCorMVC.Controllers { public class BlogController : Controller { public string Index() { return "سلام خوش آمدید به ASP.Net"; } } } برنامه اجرا شد و به صورت پیشفرض یک کنترل و یک اکشن Action ساخته شده بود که یک Views داشته در مسیر دهی بعد از دامنه باید نام کنترل را وارد کنید و بعد از نام کنترل نام اکشن را وارد کنید که می شود : https://localhost:44355/blog/index
در Asp.Net Core MVC، از سه طریق می تواند تشخیص دهد که کلاس آیا کنترل هست یا نه 1- از کلاس Controller ارث بری کرده باشد 2- نام کلاس را با نام Controller ختم بشود مثلا BlogController 3- از attribute استفاده کنیم [Controller] کلاس هایی که کنترل باشند از بیرون پروژه و بیرون از سرور همه افراد می توانند به متد public درخواست request ارسال کند اگر در پروژه کلاس داشته باشید که هدف این نباشد که کنترل باشد که توسط افراد از بیرون درخواست داده بشود و ناخواسته به کنترل تبدیل کنید خیلی راحت اطلاعت در دسترس عموم قرار داده اید و هر کسی آدرس این را داشته باشد که به راحتی پیدا می کنند می تواند به این درخواست بده و برنامه را با مشکل مواجه کند حالا شاید نیاز بود یک کاری را می خواهید انجام بدهید حتما نام کلاس با انتهای کنترل هم داشته باشد که می توانید از attribute [NonController] استفاده کنید
در کنترل متد ما تبدیل به اکشن شود حتما سطح دسترسی public استفاده کنیم در معماری mvc وضیفه ui بر عهده View می باشد پس اکشن ها باید بتواند یک View را به خروجی پاس یا برگشت دهند برای اینکه یک بتوانیم اکشن یک View را برای result کاربر ارسال کنیم از اینترفیس IActionResult برای نوع خروجی اکشن استفاده کنیم و return View(); انجام دهیم اگر در داخل پرانتز خالی بگزارم و نام View پاس ندم mvc میرود در داخل پوشه Views و پوشه Blog و در داخل پوشه Blog به دنبال فایلی می گرده با نام Get چرا نام Get چون نام اکشن هست نام اکشن هر چیزی باشد باید View برگشت می دهم دقیقا با همان نام باشد اگر نام اکشن و View یکی نباشد باید در داخل متد Views در داخل پرانتز نام Views را بنویسید اگر View شما در پوشه کنترل نبود آدرس اون را بنویسد برای ساخت View روی اکشن کلیک راست کنید Add View را بزنید و Razor View را بزنید و پنجره دوم نام را مشخص کنید که بهتره نام اکشن باقی بماند و add را می زنیم تا فایل View ساخته بشود یک پوشه Blog ایجاد کرد و در داخل پوشه Blog یک فایل Get ایجاد کرد در داخل فایل Get فایل های html را بنویسیم و برنامه را اجرا کنیم و به کنترل Blog و اکشن Get یک درخواست ارسال کنیم و خروجی View را باهم ببینیم