У меня есть сайт ASP.NET MVC под классическим ASP-сайтом. Сайт MVC является:Проблема с маршрутизацией в ASP.NET MVC
Маршруты
http://www.inrix.com/traffic
http://www.inrix.com/traffic/home
http://www.inrix.com/traffic/features
отлично работает. Однако маршрут:
http://www.inrix.com/traffic/support
нет. Нажмите, чтобы посмотреть, что я получаю. Если я включаю действие:
http://www.inrix.com/traffic/support/index
это работает.
Когда я запускаю это дома, нажав F5 в VS, он работает нормально только с http://www.inrix.com/traffic/support (т. Е. Никаких действий не указано). Вот мои маршруты:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Terms",
"{controller}/{id}",
new { controller = "Terms", action = "Index" }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
"ThankYou",
"{controller}/{action}/{email}/{id}"
);
}
www.inrix.com/traffic сопоставляется HomeController (индекс действия).
Я хочу, чтобы www.inrix.com/traffic/support сопоставлялся с SupportController, действием индекса.
Что происходит с «поддержкой» маршрута?
Дополнительный код:
Контроллер:
using System.Web.Mvc;
namespace InrixTraffic.Controllers
{
public class SupportController : Controller
{
public ActionResult Index()
{
return View();
}
}
}
Вид:
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Support</title>
</head>
<body>
<h1>Hello!</h1>
</body>
</html>
Новый маршрут:
routes.MapRoute(
"Support",
"traffic/support",
new { controller = "Support", action = "Index" }
);
Вы считаете, что F5 работает на отладке на localhost. См. Конец сообщения для разъяснения ваших вопросов. – birdus
Нет. Как мне это сделать? – birdus
@birdus, пожалуйста, проверьте мой обновленный ответ и удалите предыдущие комментарии для простоты обсуждения. Надеюсь, что это сработает. –