2012-04-23 32 views

回答

1

這是因爲Url.Action助手使用您的路線登記在全球的.asax。並且由於您的行動名稱爲Index,因此我猜想在您的路線註冊中,您已指定action="Index"的默認值,因此將其省略。

例如,如果您有以下默認路由:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.MapRoute(
     "Default", 
     "{controller}/{action}", 
     new { controller = "Home", action = "Index" } 
    ); 
} 

因爲controller = "Home"action = "Index"約束已指定了//Home是絕對等同的URL並且調用Home控制器的Index作用。

所以當你嘗試用一些助手構建一個url時會發生同樣的情況:它使用你的路由。

如果您需要在url中包含動作名稱,請確保您已在路由定義中刪除了action約束條件。