Routing e aree ASP.NET MVC
-
06-07-2019 - |
Domanda
Sto scherzando con ASP.NET MVC 2 Preview 2 e sto cercando di capire come funziona il routing con aree e simili. In un singolo progetto di implementazione di aree, desidero un'area denominata " admin " ;.
Sto cercando di essere in grado di avere URL come questo:
(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
Ho creato l'area. Ho i controller creati con le loro rispettive viste, ma è il routing che non riesco a ottenere. Qualche consiglio su come raggiungere tale percorso?
Sono sicuro che questo potrebbe essere estremamente semplice per alcuni, ma non ho avuto troppa fortuna nel trovare esempi che vadano oltre le cose di base.
Grazie!
Aggiunta alla domanda (25/10/2009) In sostanza, sto chiedendo quali percorsi e in quale ordine dovrei impostare nella classe AreaRegistration Area? Finora ho fatto tutto quanto menzionato, ma senza risultati.
Soluzione
Registra aree in un singolo progetto
Devi aggiungere il file route.cs alla cartella dell'area di amministrazione.
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 = "" }
);
}
}
}
Altri suggerimenti
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" });