2010-04-24 91 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