ta nie działa, gdy adres URL jest tak localhost: 2474/SOProblems/podkatalog/ChildController/index
to normalne. Wzór trasy wygląda następująco: SubFolder/ChildController
, a nie SubFolder/ChildController/index
. Oprócz tego zdefiniowałeś swoją trasę w WRONG miejscu. Zdefiniowałeś go w swoich głównych definicjach tras, a nie w definicjach tras w obszarze. Więc pozbyć definicji zwyczaj trasę z głównych tras i dodać go do pliku SOProblemsAreaRegistration.cs
(co jest gdzie trasy SOProblems
powinna zostać zarejestrowana):
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"SubFolderRoute",
"SOProblems/SubFolder/ChildController",
new { controller = "ChildController", action = "Index" },
new[] { "Practise.Areas.SOProblems.Controllers.SubFolder" }
);
context.MapRoute(
"SOProblems_default",
"SOProblems/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
też od swojej strukturze trasy (SOProblems/SubFolder/ChildController
) nie ma możliwość określenia nazwy akcji, możesz wykonać tylko jedno działanie na tym kontrolerze i będzie to domyślna akcja, którą zarejestrowałeś (index
) w tym przypadku.
Jeśli chcesz mieć więcej działań na tym kontrolerze, a jednak wskaźnik być jeden domyślny należy uwzględnić, że w swojej strukturze trasy:
context.MapRoute(
"SubFolder",
"SOProblems/SubFolder/ChildController/{action}",
new { controller = "ChildController", action = "Index" },
new[] { "Practise.Areas.SOProblems.Controllers.SubFolder" }
);
W obu przypadkach głównym definicja trasa może pozostać z ich wartościami domyślnymi :
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
"{controller}/{action}",
new { controller = "Home", action = "Index" }
);
}
"Nie działa" oznacza dokładnie co? – TGlatzer
@ Grumbler85 - ostatni wypróbowany URL daje 404, –
Backtick jest tutaj tylko "SubFolder'/ChildController"? Sprawdź, czy przestrzeń nazw wewnątrz podfolderu jest ustawiona poprawnie. – TGlatzer