Я нахожусь в процессе отладки проблемы маршрутизации в моем приложении MVC 3, и я использую отладчик маршрутизации Phil Hacks.
Кажется, я не могу понять, откуда начинается маршрут, выделенный желтым цветом ниже.Каждый раз, когда я запускаю свое приложение со следующим запросом
http://www.mywebsite.com/auth/login?ReturnUrl=/
, сначала идет этот маршрут, а затем выдает ошибку 404, поскольку у меня нет действия с индексом.Как вы можете видеть, я настроил маршруты по умолчанию для использования метода действия входа в систему, но этот маршрут все еще сохраняется.
У меня есть следующие конфигурации маршрутов:
AuthAreaRegistration
public class AuthAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Auth";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"login",
"auth/login/{*returnPath}",
new { controller = "Auth", action = "LogIn", id = UrlParameter.Optional }
);
context.MapRoute(
"Auth_default",
"Auth/{controller}/{action}/{id}",
new { controller = "Auth", action = "LogIn", id = "" }
);
}
}
Global.asax (с использованием шаблонов MVC T4)
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Home",
"{controller}/{action}/{id}",
MVC.Home.Index(), new { id = UrlParameter.Optional },
new string[] { "MyNamespace.WebUI.Controllers" }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
MVC.Home.Index(), new { id = UrlParameter.Optional },
new string[] { "MyNamespace.WebUI.Controllers" }
);
}