AREA
Bir web sitesi birden fazla bölümden oluşabilir. Ve her bölüm için ayrı bir proje oluşturmak isteyebilirsiniz. Bunun için ASP.net MVCde area (alt alan) yapısını kullanabilirsiniz.
AREA NASIL EKLENİR ?
Projenin üzerine gelip sağ tuşa tıklayıp ADD ordan da areaya tıklayın.Area ismini verdikten sonra AREAS adında bir klasör onun içinde bir klasör daha oluşacak o klasörün içinde de yepyeni bir proje olucaktır. O projenin kendine ait bir controller’ı , View’I ve model’ı olucaktır. Ana projeye yaptıgınız gibi controller , Actionlar için view ve model eklemeleri yapıp bu projeyi yönetebilirsiniz.
AREAYA ULAŞMA
SiteAdı / AlanAdı(AreaAdı) / ControllerAdı / ActionAdı . Bu urlyi diğer urlden ayıran şey alan yani area adıdır controllerla action adını girmeden once ilk olarak area adı yazılır.
AREANIN ROUTE ‘ı nı yapılandırma
Areanın route ayarlarının yapılandırılması areas klasörünün içindeki …….AreaRegistration.cs sınıfnda yapılır e zaten areanında kendi içinde bağımsız bir proje oldugunu söylemiştik ozaman yapılandırma ayarının kendi içinde olması da doğaldır değil mi [Simge]
Biraz daha detaya inersek ……AreaRegistration.cs ‘ nin içerisinde
public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( "Mobil_default", "Mobil/{controller}/{action}/{id}", new { action = "Index", id = UrlParameter.Optional } // NİYE CONTORLLER YOK ); }
Metoduyla karşılaşıcaz burdaki ayarlar tahmim edebilceğiniz üzere normal route ayarlayırla aynı. Zaten yukarıda tek farkın alan adı oldugunu söyledik ki o da metot içinde sabit olarak MOBİL diye tanımlanmıştır
ÖNEMLİ KISIMLAR
- Areanın dizin ismini değiştirmek isterseniz.
1.Areanın klasörünün ismini değiştirmelisiniz
2.Areanın …..AreaRegistration.cs sınıfında AreaName adında bir metot bulunmakta
Burdaki ismi değiştirmelisiniz
3.Areanın layout tanımlamasının yapıldığı_ViewStart.cshtmldeki ismi değiştirmelisiniz.
Bu aşamalardan sonra dizinin ismini değiştirip bunu da projenin gerekli yerlerine bildirmiş oldunuz ancak burda önemli nokta bu yaptıgınız hareketler sitenin route’nu değiştirmez sitenin routue hala
Mobil/Makale/Index tir. Bunun ayarları aynı sınıftaki routeRegisterda yapılır. Bizim burda yaptıgmız proje dizininin adını değiştirmektir.