Domanda

Ho fatto un progetto di Area per la mia applicazione ASP.NET MVC chiamato 'Admin'.

Questo conterrà tutta la logica per la sezione Amministrazione del sito, dove gli utenti possono aggiungere / rimuovere le pagine, ecc.

C'è un menu nella parte superiore, di cose che l'utente può gestire. (Ad esempio 'Contenuto', 'Utenti', etc)

Per ciascuno di questi, sto facendo un controller ( 'ContentController', 'UsersController', etc)

Mi chiedo come impostare la navigazione, in quanto sembra che ci siano approcci diversi.

Un approccio è quello di utilizzare MvcSiteMap, che prevede la creazione di un file '.Sitemap' e decorazione di azioni sul mio controller con un attributo 'MvcSiteMapNode'.

Il problema di quanto sopra è che è complicato da implementare (in particolare in un progetto di Area, a causa del modo in cui le aree di lavoro in ASP.NET MVC). Inoltre sembra eccessivo.

mi è venuta in un modo diverso, che è quella di decorare ogni controller con il mio attributo. Poi ho un metodo di supporto che rende la mia navigazione utilizzando riflessione per scorrere ogni controller, scegliere quelli che hanno quell'attributo, e poi aggiungerli al menu di navigazione.

Quali sono i tuoi pensieri sul metodo di cui sopra? Si può pensare a un modo ancora più semplice di fare questo?

È stato utile?

Soluzione

Così ho fatto a modo mio -. Un attributo su ciascun controller, quindi un metodo statico che legge tutti gli attributi all'avvio dell'applicazione (utilizzando la riflessione) e li mantiene in memoria

Finora questo ha funzionato perfettamente, e non ho bisogno di nessuna delle caratteristiche avanzate di MvcSiteMap.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top