Area cartelle assomigliano:Instradamento area in PVC?
Areas
Admin
Controllers
UserController
BranchController
AdminHomeController
directory di progetto assomigliano:
Controller
UserController
GetAllUsers
registrazione percorso zona
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new { controller = "Branch|AdminHome|User" }
);
}
registrazione percorso progetto
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new string[] { "MyApp.Areas.Admin.Controllers" });
}
Quando instrado in questo modo: http://mydomain.com/User/GetAllUsers
Ottengo l'errore di ricerca non trovata (404). Ottengo questo errore dopo aver aggiunto UserController all'Area.
Come posso risolvere questo errore?
Grazie ...
Sono stato confuso dagli spazi dei nomi che corrispondono alle aree. In questo esempio lo spazio dei nomi MyApp.Areas.Admin.Controllers corrisponde alla gerarchia delle cartelle, tuttavia la definizione dello spazio dei nomi è arbitraria, giusto? Significa che il programmatore potrebbe assegnare qualsiasi spazio dei nomi alla classe controller che volevano - ho pensato. O c'è qualche convenzione asp.net per mvc che richiede che lo spazio dei nomi corrisponda alla gerarchia delle cartelle? – Howiecamp
@Howiecamp il comportamento predefinito di Visual Studio è quello di abbinare lo spazio dei nomi alla gerarchia delle cartelle e questo è ciò che si vedrà in genere in tutti i progetti .net (non solo i progetti MVC). –