У меня есть пара таких контроллеров:
[RoutePrefix("side-navigation")]
public class SideNavigationController : BaseController
{
[Route("{pathname}")]
public ActionResult Index(string pathname)
{
SideNavigationPopoutModel model = _sideNavFactory.Value.CreatePopout(pathname);
if (model != null)
{
return View(model);
}
return HttpNotFound();
}
}
public class CatchAllController : BaseController
{
public ActionResult Index(string pathname)
{
CatchAllModel model = _catchAllModelFactory.Value.Create(pathname);
if (model != null)
{
// TODO: Do we need this - what does it do?
// TempData.Restore(this);
return View(model);
}
return HttpNotFound();
}
}
Но я не могу получить доступ к своему действию index в боковом навигационном контроллере - если я смотрю на localhost/side-navigation/test
, он попадает в контроллер catch allс side-navigation/test
в качестве имени пути вместо боковой навигации с test
в качестве имени пути.
Кто-нибудь может увидеть, что я здесь что-то не так делаю или как заставить работать контроллер боковой навигации?
Это конфигурация маршрута:
// MVC attribute routing
routes.MapMvcAttributeRoutes();
// Default catch all route
routes.MapRoute(
"Default",
"{*pathname}",
new { controller = "CatchAll", action = "Index" });
Странно, если я изменю маршрут индекса боковой навигации на test/{pathname}
и перейду на side-navigation/test/test
, он будет работать, и контроллер нажмет, но яне хочу ничего добавлять до пути