2010-04-24 87 views
0

我創建了一個名爲「Admin」的區域。我在這方面也創建了一個控制器(Pages)和一個視圖(List)。ASP.NET MVC 2區域,奇怪的路由行爲

當我運行我的應用程序並輸入URL「/ Admin/Pages/List」時,我得到一個資源找不到錯誤。

當我輸入/網頁/列表,操作方法被擊中,但認爲是找不到的,因爲應用程序在錯誤的目錄

搜索

〜/查看/頁/ List.aspx 〜/查看/ Pages/List.ascx 〜/ Views/Shared/List.aspx 〜/ Views/Shared/List.ascx

該視圖位於/ Admin/Pages/List中。

我對管理區域路由的conf:

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

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

回答

2

你有沒有加入AreaRegistration.RegisterAllAreas();到Global.asax.cs中

這應該在你現有的routes.MapRoute調用運行

編輯:

剛看了一下我的管理區域,路由看起來像這樣:

context.MapRoute(
       "Admin_Default", 
       "Admin/{controller}/{action}/{id}", 
       new { action = "Index", id = UrlParameter.Optional } 
      ); 
+0

是的,它在那裏。但它無法正常工作。我理解路由權嗎?區域的url應該看起來像www.domain.com/Area/Controller/Action/Parameter? – user137348 2010-04-24 13:49:45

+0

@ user137348:那看起來正確... – 2010-04-24 13:53:59

+0

沒關係。我發現了什麼導致了奇怪的行爲。之前我使用拖放方式將控制器從根目錄複製到該區域。不變的命名空間導致了這個問題。我的錯。無論如何感謝您的時間.. – user137348 2010-04-24 14:03:04