2011-09-01 192 views
0

任何想法爲什麼找不到此鏈接?未找到MVC3路由

context.MapRoute(null, "Admin/CompanyUserDelete/{userprofileid}", new { controller = "Admin", action = "CompanyUserDelete", userprofileid = UrlParameter.Optional }); 

它使用AreaRegistration類定義。

public class AdminAreaRegistration : AreaRegistration 
    { 
     public override string AreaName 
     { 
      get 
      { 
       return "Admin"; 
      } 
     } 

public override void RegisterArea(AreaRegistrationContext context) 
     { 
      context.MapRoute(null, "Admin", new { controller = "Admin", action = "Index" }); 

      context.MapRoute(null, "Admin/Users", new { controller = "Admin", action = "CompanyUsers" }); 
      context.MapRoute(null, "Admin/Users/Create", new { controller = "Admin", action = "CreateUser" }); 
      context.MapRoute(null, "Admin/Users/{userprofileid}", new { controller = "Admin", action = "CompanyUser" }); 

      context.MapRoute(null, "Admin/CompanyUserDelete/{userprofileid}", new { controller = "Admin", action = "CompanyUserDelete", userprofileid = UrlParameter.Optional }); 

      context.MapRoute(null, "Admin/Users/{userprofileid}/Photo", new { contro 
ller = "Admin", action = "UserImage" }); 
} 
</code></pre> 

這裏是未找到鏈接。

@Html.ActionLink("Delete", "CompanyUserDelete", "Admin", new { area = "Admin", userprofileid = userItem.UserProfileId }, null) 
+0

你忘了展現尤其哪一個環節沒有找到。您只顯示您的管理區域路線定義。 –

+0

謝謝。我更新了消息。 – Keith

回答

0

CompanyUserDelete沒有聲明您發送給它的第一個參數「area」。


    context.MapRoute(null, "Admin/CompanyUserDelete/{userprofileid}", new { controller = "Admin", action = "CompanyUserDelete", userprofileid = UrlParameter.Optional }); 

但在這裏,你有「區」

@Html.ActionLink("Delete", "CompanyUserDelete", "Admin", new { area = "Admin", userprofileid = userItem.UserProfileId }, null) 
+0

這個爲什麼有效? - > \t @ Html.ActionLink(「Edit」,「CompanyUser」,「Admin」,new {area =「Admin」,userprofileid = userItem.UserProfileId},null) – Keith

+0

Steve Sanderson的書說area =是保留路由參數名稱 – Keith

+0

它是 - 在你的MapRoute中。林不是100%確定,但你可以在參數中指定它,而不需要它在路線中。我將不得不在這方面進行一些研究。你確實 - 我假設 - 有一個名爲CompanyUserDelete的操作,對吧?它的方法簽名是什麼? –