У меня есть контроллер с именем MetricsController
с методом одного действия:
public class MetricsController
{
public ActionResult GetMetrics(int id, string period)
{
return View("Metrics");
}
}
Я хочу перенаправить вызовы на этот контроллер следующим образом:
http://mysite/metrics/getmetrics/123/24h
Я наметил дополнительный маршрут в моем Global.asax.cs
, например:
routes.MapRoute(
"Metrics",
"{controller}/{action}/{id}/{period}",
new { controller = "Metrics", action = "GetMetrics", id = 0, period = "" }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Я только что добавил это в проект шаблона по умолчанию, который создает Visual Studio 2010.
Когда я запускаю приложение, вместо значения по умолчанию HomeController
, оно запускается вместо MetricsController
.
Почему это происходит? Когда я запускаю приложение, которое соответствует шаблону URL, указанному в маршруте Metrics
, в URL ничего нет.
Все это делается в Visual Studio 2010 с использованием встроенного веб-сервера.