PDA

View Full Version : گروه بندی کنترل ها



Wily_Fox
یک شنبه 11 فروردین 1392, 15:56 عصر
با سلام و خسته نباشید

چطوری میتونم کنترل ها رو گروه بندی کنم.

به فرم زیر توجه کنید:


Controller
AdminController
HomeController
PageController
...
Views
Admin
Controller
PageController
CommentsController
,...
Views
Index.cshtml

Page
List
Create
Edit
Delete

Comments
List
NewComments
AllComments
Edit
Delete
,...
Home
Index
Aboutme
Contacts
Pages
Content

متشکرم

Wily_Fox
شنبه 17 فروردین 1392, 11:48 صبح
دوستان خواهشن پاسخ بدید من منتظرم.

متشکرم

amirashna
یک شنبه 18 فروردین 1392, 20:38 عصر
اصلا سوالت واضح نیست! منظورت از کنترل همون کنترلره!؟
دسته بندی یعنی چی آخه؟

از چه نظر دسته یندی بشند ؟ فقط جاشون؟

Wily_Fox
دوشنبه 19 فروردین 1392, 11:35 صبح
سلام

در حال حاضر که گروه بندی نکردم چهار تا کنترل تو پروژه ام دارم. به نام های HomeContoller ، AdminController ، PageController and AccountController
داخل HomeController توابع لازم جهت Home page, Contact page and about page رو قرار دادم

داخل PageController توابع لازم جهت نمایش page و Comment گذاشتن توسط کاربران رو قرار دادم

داخل AdminController هم کلیه توابع لازم جهت مدیریت وب سایت رو قرار دادم. از قبیل:
1- ایجاد، ویرایش، حذف صفحات
2- ایجاد، ویرایش، حذف منوها
3- ایجاد، ویرایش، حذف لینک ها
4- ایجاد، ویرایش، حذف Footer
5- ایجاد، ویرایش، حذف محتوای صفحه اصلی
6- ایجاد، ویرایش، حذف دانلودها
7- تایید، ویرایش، حذف کامنت ها
8- مشاهده و پاسخ به تماس ها
9- ایجاد، ویرایش، حذف اخبار سایت
10- ایجاد، ویرایش، حذف اسلایدر
11- و...

همونطور که متوجه شدید کنترل ادمین من خیلی شلوغ شده.
من میخوام یه فولدری به نام ادمین داشته باشم و کلیه کنترل های لازم جهت مدیریت وب سایت رو تو اون فولدر (جدا واسه هر کدام یه کنترل) قرار بدم.

و با لاگین کردن مدیر سایت اون رو به این فولدر هدایت کنم.

hakim22
دوشنبه 19 فروردین 1392, 17:26 عصر
شما می توانید از مفهوم Area استفاده کنید.
یا اینکه به صورت دستی فولدر ایجاد کنید و از پیشفرض ASP.MVC استفاده نکنید. در این صورت برای نمایش View مربوط به هر Action باید آدرس کامل اونو در قسمت Result وارد کنید

Wily_Fox
دوشنبه 19 فروردین 1392, 21:44 عصر
میشه کمی بیشتر راهنمایی کنید.

مفهوم Area رو تو سایت های خارجی خوندم اما نتونستم پیاده کنم
اگه میشه هردو رو کمی روشن تر با مثال توضیح بدید.

متشکرم

hakim22
سه شنبه 20 فروردین 1392, 10:11 صبح
Area پروژه ی وب شما رو به چندین محدوده کوچکتر تقسیم می کنه. به این معنی که سایت بزرگ شما به چندین پروژه ی MVC کوچکتر تقسیم میشه.
روی عنوان پروژه (سرشاخه) کلیک راست کنید و از قسمت Add به گزینه ی Area بروید. عنوان مجموعه جدید (مثلا Admin) رو وارد کنید. پس از تایید میبینید که فولدری به پروژه با عنوان Areas اضافه شده که زیرش فولدر Admin هست و زیرش فولدرهای Controller و Models و Views هست. یک کلاس هم با عنوان AdminAreaRegisteration به پروژه اضافه میشه (زیر همین فولدر) که برای مدیریت Routing است(دست نزنید !)

برای ساختن لینک دسترسی به هر Area بهترنی راه استفاده از ActionLink به صورت زیر است.
@html.ActionLink("LinkTitle","ActionName","ControllerName",new { area="AreaName"},null)

راه دوم رو پیشنهاد نمی کنم چون از نظر تکنیکی کد نویسی بیشتری داره و پیشفرض های ASP.MVC رو بهم میزنه و پروژه از حالت استاندارد بیرون میاد.

Wily_Fox
سه شنبه 20 فروردین 1392, 11:14 صبح
دست گلت درد نکنه. عالی بود.

Wily_Fox
چهارشنبه 21 فروردین 1392, 11:38 صبح
سلام

چندتا سوال دیگه در این مورد دارم اگه زحمتی نیست به اینا هم پاسخ بدید

کلیه کنترل های لازم جهت مدیریت وب سایت رو تو areas/admin/cotroller قرار دادم. View های مربوطه رو هم درست کردم.

آدرس دهی Actionlink رو واسه رفتن به ریشه وب سایت رو چطور انجام بدم؟ (مثلا میخوام به Home برم)

متشکرم

Wily_Fox
چهارشنبه 21 فروردین 1392, 13:25 عصر
پیدا کردم



<ul id="menu">
<li><%= Html.ActionLink("Home", "Index", "Home", new { area = "" }, null)%></li>
<li><%= Html.ActionLink("Blog", "ShowRecent", "Blog", new { area = "blog" }, null)%></li>
<li><%= Html.ActionLink("Dashboard", "AddPost", "Dashboard", new { area = "dashboard" }, null)%></li>
<li><%= Html.ActionLink("About", "About", "Home", new { area = "" }, null)%></li>
</ul>