Маршрутизация и области ASP.NET MVC
Я возился с 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
У меня создана область. У меня есть контроллеры, созданные с их соответствующими представлениями, но это маршрутизация, которую я не могу получить. Любые советы относительно того, как я буду добиваться такой маршрутизации?
Я уверен, что это может быть очень просто для некоторых, но мне не слишком повезло найти примеры, выходящие за рамки основного материала.
Спасибо!
Добавление к вопросу (10/25/2009)
Я в основном спрашиваю, какие маршруты и в каком порядке я бы установил в классе AreaRegistration? Я сделал все, что упоминалось до сих пор, но без каких-либо результатов.
Ответы
Ответ 1
Зарегистрировать области в одном проекте
Вам нужно добавить файл route.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
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" });