2009-06-26 13 views
18

In un'applicazione ASP.Net MVC 1.0, è possibile accedere alle impostazioni dell'applicazione (MyProject.Properties.Settings.Default. *) Dall'interno della mia vista (pagina aspx)?Accesso alle impostazioni dell'applicazione da ASP.Net Visualizzazione MVC

Ho provato ma l'intellisense e il compilatore non mi piace. Dice che è inaccessibile a causa del livello di protezione.

+0

Un'altra domanda sarebbe: dovrebbe essere permesso alla vista di leggere qualcosa dalla configurazione? –

+0

La domanda correlata (menzionata nel commento nella risposta di Haack): è necessario aprire il file delle impostazioni, nell'angolo in alto a destra è possibile impostare l'accessibilità (interna vs pubblica) – Bertvan

+1

Per favore. Non farlo – Dariusz

risposta

18

La tua visualizzazione dovrebbe essere responsabile solo per il rendering dei dati forniti dal controller. La responsabilità è per il layout. Quindi suggerirei di passare i dati dell'applicazione alla vista dall'azione del tuo controller.

Detto questo, la risposta tecnica alla tua domanda è che ViewPage deriva dalla pagina, in modo da poter semplicemente fare questo:

<%= Context.Application["setting"] %> 

Ma ancora una volta, io non lo consiglio.

+0

Grazie Phil. La tua spiegazione ha senso per me. Sto implementando un servizio di tipo PhotoGaller e ho definito le dimensioni di immagine predefinite nel web.config. Voglio mostrare queste dimensioni all'utente in modo che capiscano che le loro immagini devono essere conformi a determinate dimensioni, altrimenti verrà ridimensionato/rifiutato. Quindi è puramente a scopo di visualizzazione a mio avviso. Passerò queste informazioni dal controller alla mia vista. Grazie., –

+0

Una domanda correlata è: perché non riesco ad accedere alla classe delle impostazioni fortemente tipizzata dalla mia vista. Mi riferisco al file settings.settings, che di solito è accessibile tramite MyProject.Properties.Settings.Default.StronglyTypedSetting. So che non dovrei farlo - lo capisco. Voglio capire perché il compilatore non mi darà accesso. La classe delle impostazioni è contrassegnata come interna e sto provando ad accedervi dallo stesso progetto, quindi, per quanto posso dire, non dovrebbe esserci un problema .. –

+0

Ma, se le informazioni nelle impostazioni sono di un più natura globale - numero di versione dell'applicazione, ad esempio - e le informazioni devono essere visualizzate da una o più pagine master, quindi questa non è una responsabilità correlata al controller. Avrebbe più senso gestirlo in un'implementazione HttpHandler o HttpModule? – belugabob

26

Ho avuto un problema simile a Saajid Ismail dove le mie impostazioni erano in namespace.Properties.Settings.Default.Setting erano lì come essi sono fortemente tipizzati ..

per renderli accessibili ho dovuto semplicemente cambiare il modificatore di accesso enter image description here

+2

Grazie, questo ha risolto il problema per me :) –

Problemi correlati