Jak skonfigurować obszary w ASP.NET MVC3

Czy ktoś wie jak skonfigurować obszary w ASP.NET MVC3. Przeczytałem artykuł o obszarach w tutaj . Ale ten artykuł nie jest oparty na MVC3. W MVC3 nie ma funkcji o nazwie MapRootArea w RouteCollection routes, która znajduje się w Global.asax

routes.MapRootArea("{controller}/{action}/{id}", 
                 "AreasDemo", 
                  new { controller = "Home", action = "Index", id = "" });

Kiedy tworzę nowy obszar używając MVC3, otrzymuję klasę tego obszaru, która odziedziczyła po AreaRegistration i wygląda następująco: (tutaj jest nazwa obszaru)

public class BlogsAreaRegistration : AreaRegistration
{
    public override string AreaName
    {
        get
        {
            return "Blogs";
        }
    }

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Blogs_default",
            "Blogs/{controller}/{action}/{id}",
            new { action = "Index", id = UrlParameter.Optional }
        );
    }
}

Czy ktoś mógłby mi pomóc jak skonfigurować obszar w MVC3. Dowolne łącze przydałoby się.

Author: Imrul, 2011-03-09

3 answers

Kliknij prawym przyciskiem myszy swój projekt internetowy i wybierz Dodaj - > obszar... Następnie wpisz nazwę obszaru, a Visual Studio zajmie się resztą, która ma wygenerować wszystkie niezbędne klasy. Na przykład rejestracja obszaru może wyglądać tak:

public class AreasDemoAreaRegistration : AreaRegistration
{
    public override string AreaName
    {
        get
        {
            return "AreasDemo";
        }
    }

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "AreasDemo_default",
            "AreasDemo/{controller}/{action}/{id}",
            new { action = "Index", id = UrlParameter.Optional }
        );
    }
}

I w Application_Start twojego Global.asax wystarczy:

AreaRegistration.RegisterAllAreas();
 40
Author: Darin Dimitrov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-09 09:25:00

Możesz mieć tę samą nazwę kontrolera w katalogu głównym i w obszarze, po prostu musisz ją zdefiniować.

W Twojej globalnej.asax, dodaj ostatnią linię tras.maproute jak pokazano poniżej

 routes.MapRoute(
      "Default", // Route name
       "{controller}/{action}/{id}", // URL with parameters
       new { controller = "Home", action = "Index", id = UrlParameter.Optional },// Parameter defaults
       new[]{"YourNameSpace.Controllers"}
  );

Dodaj również nazwę kontrolera w swoim ares/?????AreaRegistration.plik cs

 context.MapRoute(
        "Membership_default",
        "Membership/{controller}/{action}/{id}",
         new { controller= "Home", action = "Index", id = UrlParameter.Optional }
      );
 5
Author: shamshir,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-25 07:38:48

Poniższy obrazek pokazuje jak skonfigurować obszar w mvc .Tutaj wpisz opis obrazka

 1
Author: user1089766,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-11 13:11:10