有人可以解释路径如何与MVC 2中的控制器相关联吗?目前,我在/Controllers/HomeController.cs和view/Home/Index.aspx中有一个控制器。ASP.NET MVC 2网址/路由,与控制器相关的视图如何?
我的路径登记方法看起来像这样:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
routes.MapRoute(
"Default",
// Route name
"{controller}/{action}/{id}",
// URL with parameters
new { controller = "Home", action = "Index", id = "" }
// Parameter defaults
);
}
如果我请求URL:http://localhost/Home/Index,则该请求被正确地处理HomeController.Index()。
但是,对于我的生活,我无法弄清楚url/Home/Index如何指向HomeController。据我所知,视图aspx并没有引用HomeController,HomeController没有引用该视图,并且路由表没有明确提及HomeController。这如何神奇地发生?当然,我错过了一些明显的东西。
然后
大部分是有道理的。但是,在第二个代码片段中传递给.MapRoute的默认对象引用了一个名为“Home”的控制器。我的控制器类被称为“HomeController”。我如何明确指定用于特定路由/ URL的控制器? – 2009-10-20 17:35:43
您需要为这些路由添加明确的规则,并在默认参数中告诉它使用哪个Controller(不包括“Controller”后缀)。 – 2009-10-20 17:46:14
谢谢 - 我会将此标记为已接受。但是,我是否正确理解在上面的示例中,“Albums”必须具有名为“AlbumsController”的相应控制器类? – 2009-10-20 17:50:24