ASP.NET MVC маршрутизация и области - PullRequest
13 голосов
/ 25 октября 2009

Я возиться с ASP.NET MVC 2 Preview 2 и пытаюсь выяснить, как работает маршрутизация с областями и тому подобным. В одном проекте реализации областей я хочу область с именем "admin".

Я пытаюсь получить такие URL-адреса:

(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

У меня есть созданная область. У меня есть контроллеры, созданные с их соответствующими представлениями, но я не могу получить маршрутизацию. Какой-нибудь совет относительно того, как я достиг бы такой маршрутизации?

Я уверен, что для некоторых это может быть чрезвычайно просто, но мне не слишком повезло в поиске примеров, выходящих за рамки базовых вещей.

Спасибо!

Дополнение к вопросу (25.10.2009) Я в основном спрашиваю, какие маршруты и в каком порядке я бы настроил в классе AreaRegistration в Районе? Я сделал все упомянутое до сих пор, но безрезультатно.

Ответы [ 2 ]

27 голосов
/ 25 октября 2009

Регистрация областей в одном проекте

Вы должны добавить файл rout.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 = "" }
            );
        }
    }
}
0 голосов
/ 25 октября 2009

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" });
...