2009-10-25 119 views
13

我搞亂了ASP.NET MVC 2 Preview 2,並試圖弄清楚路由如何與區域等工作。在單個項目實施的區域中,我想要一個名爲「admin」的區域。ASP.NET MVC路由和區域

我想能有網址是這樣的:

(root)/admin/apples/search 
(root)/admin/apples/edit/3 
(root)/admin/apples/add 
(root)/admin/oranges/search 
(root)/admin/oranges/edit/5 
(root)/admin/oranges/add 
(root)/admin 

我已經創建了面積。我用各自的視圖創建了控制器,但這是我無法得到的路由。有關如何實現此類路由的任何建議?

我相信這對一些人來說可能是非常簡單的,但我沒有太多的運氣找到超出基本內容的例子。

謝謝!

加入到問題(2009/10/25) 我基本上是問什麼路線和以什麼順序將我在片區的AreaRegistration類設置?到目前爲止,我已經完成了所有提及,但沒有結果。

回答

27

Register areas in single project

您必須添加routes.cs文件到管理區的文件夾。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 

namespace MvcAreasSingleProject.Areas.Admin 
{ 
    public class Routes : AreaRegistration 
    { 
     public override string AreaName 
     { 
      get { return "admin"; } 
     } 

     public override void RegisterArea(AreaRegistrationContext context) 
     { 
      context.MapRoute(
       "admin_default", 
       "admin/{controller}/{action}/{id}", 
       new { controller = "Admin", action = "Edit", id = "" } 
      ); 
     } 
    } 
} 
+2

這看起來對我來說是正確的。 – Haacked 2009-10-29 00:02:56

0

http://haacked.com/archive/2009/07/31/single-project-areas.aspx

 
routes.MapAreaRoute("Forums", 
     "admin_area", 
     "admin/{controller}/{action}/{id}", 
     new { controller = "apples", action = "search", id = "" }, 
     new string[] { "Project.Areas.Admin.Controllers" }); 
+0

這是ASP.NET MVC 2預覽版1 - 我正在開發預覽版2,其中包括一個項目中開箱即用的區​​域實現。 RouteCollection甚至沒有預覽2中的MapAreaRoute方法。 – 2009-10-25 06:39:09

+0

http://forums.asp.net/t/1477416.aspx – 2009-10-25 07:14:02