Ich versuche, die Routings wie folgt zu erreichen:mit Flächen in MVC5
- http://example.com/Admin/Index
- http://example.com/Application/Index
- http://example.com/Customers/Index
etc ...
ich die Ideen mögen Verwenden von 'Bereiche' und möchte alle Codes durch Verwendung von Bereichen zu trennen. Also, habe ich meine Bereiche Struktur wie die folgende screnshot
und den Code in ApplicationAreaRegistration.cs ist
public override string AreaName
{
get
{
return "Application";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Application_default",
"Application/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
Allerdings kann ich die Route nicht erreichen Ich möchte wie
http://example.com/Application/Index
Stattdessen wird es, http://example.com/Application/Application/Index
Ich habe versucht, das Standard-Routing ohne {Controller} in AreaRegistration zu ändern.
context.MapRoute(
"Application_default",
"Application/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
Aber ich habe, Controller ist erforderlich Bereich.
Ich weiß, ich kann leicht http://example.com/Application/Index bekommen, wenn ich den Controller in Root-Controller-Ordner setzen. Aber es bedeutet, dass ich meine Codes nicht mehr wie die Bereiche gruppieren konnte und sie wird über die MVC-Ordner verteilt.
Was ich gerne wissen würde, ist, ob ich erreichen kann, was ich will, indem ich die Gebiete benutze oder versuche ich zu tun, was unmöglich ist?
Benötigen Sie wirklich Bereiche, um dies zu tun? Was Sie beschreiben, ist nur mehrere Controller. Sie könnten das Routing ändern, aber das ist in diesem Fall nicht notwendig. – DavidG
Zum Beispiel, was würden Sie gerne tun, wenn Sie einem Bereich einen zweiten Controller hinzufügen? Was wäre die URL dann? – DavidG
Ich werde keinen zweiten Controller zu einem Bereich hinzufügen. Wenn ich es addierte würde es sein Anwendung/Application/ActionA Anwendung/AnotherController/ActionA – TTCG