Sul mio sito web, ho una sezione (una barra laterale mobile) che voglio renderizzata solo per un sottoinsieme di utenti (amministratori). Spero di poter inserire la logica nel layout principale per determinare se la sezione debba essere mostrata o meno, ma questo causa un errore nella pagina se la sezione non viene renderizzata.Come si rende facoltativamente il rendering di una sezione in ASP.Net MVC 3?
codice di esempio - Layout.cshtml ... codice
... code ...
@if(user.IsAdmin) {
@RenderSection("AdminSidebar", false)
}
Esempio - MyPage.cshtml ...
@section AdminSidebar {
... code ...
}
Qualcuno sa come ottenere questo a lavorare senza dover mettere il logica in tutte le pagine figlio?
Come nota, IsSectionDefined ("AdminSidebar") funziona solo nel file di layout. Non funziona nella pagina per verificare se la sezione è disponibile o meno.
Intelligente. Mi piace. Mi auguro che il framework MVC abbia ignorato solo le sezioni che non sono state definite invece di generare errori, ma ciò mi consente di definire la sezione nel modo che voglio. – Brian
@Brian Ma perché non utilizzare il renderPartial come suggerito da itsmatt, che è molto più pulito? – gdoron
Perché allora dovrei creare un partial per ogni pagina che voglio aggiungere anche una sidebar (è contestuale in base alla pagina). – Brian