Ho notato che in MVC 2 Preview 2, AreaRegistration sta caricando i percorsi per ogni area in un ordine arbitrario. C'è un buon modo per prenderne uno prima dell'altro?MVC 2 AreaRegistration Routes Order
Ad esempio, ho due aree: "Sito" e "Amministratore". Entrambi hanno un controller "Blog".
Vorrei la seguente:
/admin/ --> go to Admin's Blog controller
/ --> go to Site's Blog controller.
Il problema è che si sta caricando il percorso del primo sito, quindi è la corrispondenza {controller}/{action}/{id}
invece di admin/{controller}/{action}/{id}
quando vado a l'URL "/ admin /". Quindi ottengo un 404, perché non ci sono controller Admin nell'area "Sito".
Entrambe le aree predefinite per il controller "Blog". Mi rendo conto che potrei semplicemente mettere site/{controller}/...
come l'url, ma preferirei averlo alla radice se possibile. Ho anche provato a mantenere la rotta predefinita nella funzione RegisterRoutes globale, tuttavia, non viene quindi inviata all'area "Siti".
Grazie in anticipo!
Hey Phil, grazie per la spiegazione. Alla fine ho spostato il mio "sito" fuori dalle aree e ora è la sezione "predefinita/non area" (con viste e controllori in root). Quindi ho impostato il mio parametro namespace sui controller predefiniti per evitare l'errore "controller ambiguo". Inoltre, avrei potuto probabilmente impostare dei vincoli su qualcosa come^((?! Admin). *) Per ignorare l'amministratore nelle rotte dell'area del sito. Sono d'accordo, aggiungere più complessità non è grande, anche se sembra che le rotte di mvc 1 (non area) possano potenzialmente basarsi pesantemente sull'ordine. Grazie! – Jason
Il processo di instradamento in genere dipende dall'ordine delle regole, quindi la funzione di 'ordinare' potrebbe essere importante. – twk
Si prega di vedere la mia risposta per due tecniche che consentono di ordinare la registrazione dell'area (e quindi i loro percorsi) in qualsiasi ordine. – Eilon