کنترلر و ویو چیست ؟ کنترلرها در معماری MVC چه کاری انجام می دهند؟ از ویوها در معماری mvc به چه منظور استفاده می شود؟
درود ، من آرزو ابراهیمی ،برنامه نویس asp.net ، و با یک مقاله آموزشی دیگر از سری مقالات اموزش mvc core در خدمت شما دوستان هستم ، در این مقاله آموزشی میخواهیم با Controller و View در معماری mvc آشنا شویم پس با من همراه باشید و این مقاله آموزشی بسیار کاربردی رو از دست ندهید.
آشنایی با مفهوم Controller در ASP.NET Core MVC
در معماری MVC کنترلرها برای حرکت بین مدل (Model) و نما (View) ، عمل می کنند. کنترلرها از یک سو، تعریف کننده متدهایی برای پیاده سازی منطقی (یا فرآیندهایی) است که بر روی داده های مدل عمل می کنند و از سویی دیگر، فراهم کننده داده هایی است که نما (View) باید نمایش دهد.
کنترلری که در یک پروژه MVC به کار می رود باید :
- دارای متدهایی (اکشن هایی) برای به بروزرسانی مدل بر پایه تعامل کاربر باشد.
کنترلر (Controller) نباید :
- دارای منطقی برای چگونگی نمایش اطلاعات باشد. (وظیفه نما است)
- دارای منطقی برای ذخیره سازی داده ها (به عنوان مثال در پایگاه داده) باشد. (وظیفه مدل است)
آشنایی با مفهوم View در ASP.NET Core MVC
نماها یا View دارای منطق مورد نیاز برای نمایش داده ها به کاربر و گرفتن اطلاعات از او هستند. این اطلاعات ورودی باید توسط متد اکشنی در یک Controller ، پردازش شوند.
نما (View) باید :
- دارای کد مناسب برای نمایش اطلاعات به کاربر باشد.
نما نباید:
- دارای منطق (کد) پیچیده باشد. (بهتر است در کنترلر قرارگیرد)
- دارای کدی در رابطه با ایجاد، ذخیره سازی و پردازش داده های مدل باشد.
نکته : نماها می توانند دارای کد #C باشند ولی باید سعی کرد که این کد تا جای ممکن ساده باشد.
به پایان این جلسه آموزشی رسیدیم امیدوارم که این جلسه آموزشی برای شما مفید واقع بشه . در صورتی که سوالی پیرامون مقالات ASP.NET Core MVC دارید حتما در انجمن میزفا مطرح کنید.
4 پاسخ
با سلام
ممنون از مطالب مفیدتون
من یک کنترلر دارم که چندین View را نمایش میدهد، این View ها مراحل ثبت نام هستند و هر کدام به یک مدل مختلف وصل هستند، ضمناً تا آخرین مرحله ثبت نام هیچ اطلاعاتی در دیتابیس ذخیره نمیشود.
سوال من این هست که برای ذخیره مدل در هر View و نگهداری آن تا آخرین View از چه روشی باید استفاده کرد؟
* context.Add نتیجه نداد چون با رفتن به هر View، کانتکست داده هایش از بین میرود.
*همچنین استفاده از Session به مشکل خورد زیرا با توجه به اینکه می بایست در هر View در IActionResult دستور HttpContext.Session.SetObjectAsJson نوشته شود با set بعدی اطلاعات قبلی sesssion پاک میشود و عملا آخرین Session دخیره میشود
پیشاپیش از اینکه برای پاسخگویی وقت میگدارید سپاسگزارم.
سلام وقتتون بخیر
می تونید از Form Wizard استفاده کنید توی نت سرچ کنید نمونه های مشابه رو برای شما می آورد
و در نهایت شما تنها یک View دارید که اطلاعات آن مرجله به مرحله جهت تکمیل نمایش داده می شود.
سلام روزبخیر
باتشکر از مطالب مفیدتون
توی تیتر اول باید اصلاحی صورت بگیره:
آشنایی با مفهوم Model در ASP.NET Core MVC
به
آشنایی با مفهوم Controller در ASP.NET Core MVC
تبدیل بشه
ممنون
با سلام … ممنونم عنوان اصلاح شد.