【发布时间】:2010-10-06 20:55:39
【问题描述】:
我有一个名为 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 开始。
为什么会这样?当我启动与Metrics 路由中指定的 url 模式匹配的应用程序时,url 中没有任何内容。
这一切都在 Visual Studio 2010 中使用内置的 Web 服务器进行了尝试。
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-2 asp.net-mvc-routing