با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش ASP.NET MVC ، را دنبال می کنند. شما قبلا آموخته اید که فریم ورک ASP.NET MVC شامل فولدرهای جداگانه ای برای Model، View و Controller است. با این حال یک برنامه بزرگ می تواند تعداد زیادی از کنترلرها، view ها و کلاس های مدل را شامل شود. بنابراین حفظ تعداد زیادی از نمایه ها، مدل ها و کنترلرها با ساختار ASP.NET MVC پیش فرض می تواند غیر قابل کنترل باشد. که برای این منظور ASP.NET MVC 2 شامل ویژگی Area است. که به شما امکان می دهد که برنامه های بزرگ را در واحدهای کوچکتر تقسیم بندی کنید. برای آشنایی بیشتر با ویژگی Area در ASP.NET MVC و چگونگی استفاده از آن در ادامه ی این مباحث با ما همراه باشید.
ویژگی Area در ASP.NET MVC به شما اجازه می دهد که برنامه های بزرگ را در بخش های کوچکتری که هر کدام شامل ساختار فولدر MVC جداگانه می شود، تقسیم بندی کنید.
به عنوان مثال، برنامه Enterprise بزرگ ممکن است ماژول های مختلفی نظیر admin، finance، HR، marketing و غیره داشته باشد.
بنابراین ویژگی Area می تواند ساختار فولدر MVC جداگانه ای برای تمام این ماژول ها بصورت شکل زیر ایجاد کند:
شما می توانید با استفاده از ASP.NET MVC 5 و Visual Studio 2013 با راست کلیک روی project و سپس انتخاب مسیر ..solution explorer -> Add -> Area یک Area ایجاد کنید.
در پنجره ی Add Area و در فیلد مربوطه نام Area را تایپ نموده و روی Add کلیک کنید.
سپس فولدر ‘admin‘ زیر فولدر Area همانند شکل زیر ایجاد خواهد شد:
سپس شما می توانید هر area که در پروژه ایجاد کرده اید را در کلاس AreaRegistration در {area name} + از فایل AreaRegistration.cs مشاهده کنید.
کلاس adminAreaRegistration در کد زیر با area با نام admin ایجاد شده است:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | public class adminAreaRegistration : AreaRegistration { public override string AreaName { get { return "admin"; } } public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( "admin_default", "admin/{controller}/{action}/{id}", new { action = "Index", id = UrlParameter.Optional } ); } } |
کلاس AreaRegistration متد RegisterArea را برای نقشه مسیرهای area لغو می کند.
در مثال فوق، URL که با admin شروع شده باشد با کنترلرهای داخل ساختار فولدر admin که زیر فولدر Area قرار دارد دستکاری شده است.
برای مثال آدرس http://localhost/admin/profile با کنترلر پروفایل در فولدر Areas/admin/controller/ProfileController دستکاری شده است.
سرانجام تمام area باید در رویداد Application_Start که در فایل Global.asax.cs قرار دارد بصورت ;()AreaRegistration.RegisterAllAreas
ریجستر شود.
در مباحث فوق آموختیم که با استفاده از ویژگی Area در ASP.NET MVC ما می توانیم چندین Area را برای برنامه های بزرگ ایجاد کرده و آن برنامه ها را به بخش های کوچکتر و مشابه تقسیم کنیم. امیدواریم که از آموزش های ASP.NET MVC بخوبی بهره مند شده باشید.
حسن
دمت چیز و ولیز ….
ابراهیم
سلام و خسته نباشید .آموزش تون برای من که اول راه هستم عالی بود .ممنون
علی اصغری
خواهش میکنم نظر لطفتونه ، ما سعی می کنیم دوره هایی که انتشار میدیم مناسب همه دوستان باشه.
بهزاد
سلام و خسته نباشید خدمت شما استاد عزیز
من یه مشکلی با نحوه اوردن اریا دارم همه جا میگن اول روی اسم پروژه کلیک راست کن بعد اد رو بزن و بعد اریا رو بزن ولی برای من اصلا Area وجود نداره اون قسمت بالا یا جای دیگه و اولین بخش اون بالا نیو ایتم هستش ممنون میشم کمکم کنید بدونم مشکل از کجاست ویژوالم مشکل داره یا از جای دیگس مشکل
با تشکر از شما
ابوالفضل
شما روی دکمه add که بزنی یک گزینه هست به نام new scaffolding روی اون گزینه که کلیک کنید میتونید Area رو مشاهده کنید و بسازید