13

我在搞乱 ASP.NET MVC 2 Preview 2 并试图弄清楚路由如何与区域等一起工作。在区域的单个项目实施中,我想要一个名为“admin”的区域。

我试图能够拥有这样的网址:

(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 类中设置哪些路线和以什么顺序?到目前为止,我已经完成了所有提到的事情,但没有任何结果。

4

2 回答 2

27

在单个项目中注册区域

您必须将 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 = "" }
            );
        }
    }
}
于 2009-10-25T10:21:51.883 回答
0

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

routes.MapAreaRoute("论坛",
        “管理区域”,
        "admin/{controller}/{action}/{id}",
        新的{控制器=“苹果”,动作=“搜索”,id=“”},
        新字符串 [] { "Project.Areas.Admin.Controllers" });
于 2009-10-25T06:33:00.937 回答