palących foldery wyglądać następująco:Routing w obszarze Mvc?
Areas
Admin
Controllers
UserController
BranchController
AdminHomeController
katalogi projektowe wyglądać następująco:
Controller
UserController
GetAllUsers
rejestracji trasa obszar
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" }
);
}
rejestracji trasa projekt
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" });
}
Podczas trasy w następujący sposób: http://mydomain.com/User/GetAllUsers
Występuje błąd braku informacji o zasobach (404). Otrzymuję ten błąd po dodaniu UserController do Area.
Jak mogę naprawić ten błąd?
Dzięki ...
Byłem zdezorientowany przez przestrzenie nazw odpowiadające obszarom. W tym przykładzie przestrzeń nazw MyApp.Areas.Admin.Controllers pasuje do hierarchii folderów, jednak definicja przestrzeni nazw jest dowolna? Oznacza to, że programista może przypisać dowolną przestrzeń nazw do klasy kontrolera, którą chcieli - myślałem. Czy jest jakaś konwencja mvc asp.net, która wymaga, aby przestrzeń nazw pasowała do hierarchii folderów? – Howiecamp
@Howiecamp domyślne zachowanie Visual Studio polega na dopasowaniu przestrzeni nazw do hierarchii folderów i to jest to, co zwykle widzisz we wszystkich projektach .net (nie tylko projekty MVC). –