有人可以解釋路徑如何與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