Lucrul cu MVC Areas în ASP.NET 5 / MVC 6

Deși proiectul ASP.NET 5 / MVC 6 reprezintă o structură fixă de repartizare pe parți funcționale distincte (modele, prezentări și controlere), uneori pentru lucrul mai ușor cu aplicația creată, mai ales pentru proiectele mari, este nevoie de structurat aplicația pe mai multe zone (areas).

În Visual Studio 2013, pentru a crea aceste zone, trebuia să apăsați click dreapta pe proiectul dvs. în Solution Explorer și să apăsați pe puncul „Add” și apoi în lista ce va apărea - „Area”. Introducând numele zonei ea se crea cu succes și se includea în proiectul dvs.

În Visual Studio 2015, acest punct, din careva motive, este eliminat. În acest articol vă voi relata cum manual se crează aceste zone.

Adăugarea zonei în proiectul dvs.

Asigurați-vă că ați creat (sau dacă îl aveți creat deja) proiectul de tip ASP.NET 5 Web Application care numaidecât trebuie să conțină mapa wwwroot (o caracteristică ce îl delimitează de versiunile precedente).

Pasul 1

În proiectul dvs. apăsați click dreapta pe denumirea proiectului în Solution Explorer, apoi apăsați Add și în lista ce va apărea alegeți „Folder”. Această operațiune va crea o mapă pe care o veți denumi-o, ex. Admin. Asemănător acțiunilor precedente, în mapa „Admin” creați 3 mape cu denumirea ”Models”, „Views”, „Controllers

Pasul 2


Adăugați în mapa Controllers din zona dvs. un MVC Controller Class cu denumirea de HomeController. În mod implicit, Visual Studio va adăuga codul de bază pentru controller-ul dvs. și prezentarea Index. Odată ce ați facut acest lucru, adăugați la class-ul HomeController atributul Area cu denumirea zonei, în acest caz „Admin”.

[Area("Admin")]
public class HomeController : Controller
{
    // GET: /<controller>/
    public IActionResult Index()
    {
        return View();
    }
}

Pasul 3

Acum trebuie de comunicat aplicației ca să înregistreze și să folosească un nou traseu zonal (area route) similar cu AreaRegistration în MVC 4/5, dar mult mai ușor. Deschideți fișierul Startup.cs din proiect și adăugați un nou traseu la cele existente folosind intrucțiunea app.UseMvc(routes => code).

// Add MVC to the request pipeline.
app.UseMvc(routes =>
{

    // Adaugati noile trasee aici.
    routes.MapRoute(name: "areaRoute", 
        template: "{area:exists}/{controller}/{action}", 
        defaults: new { controller = "Home", action = "Index" });

    routes.MapRoute(
        name: "default",
        template: "{controller}/{action}/{id?}",
        defaults: new { controller = "Home", action = "Index" });

});

Noul traseu funcționează exact ca și traseul „default”. Acum creați în mapa Views din zona dvs. creată o prezentare cu denumirea de „Index.cshtml” și după ce ați pornit aplicația și veți naviga pe adresa /Admin sau /Admin/Home sau /Admin/Home/Index veți vedea prezentarea adăugată.

P.S.: Aduc mulțumiri autorilor articolelor Working with MVC Areas in Asp.Net vNext (MVC 6) și Области (Areas)  pentru ideile ce le-au relatat perfect și m-au inspirat la scrierea acestui articol.

Comentarii

Postări populare de pe acest blog

[.NET] C# Разделить строку на слова

C# - Перемешать Массив

C# взаимодействие с сайтом