2015-05-19 10 views
5

Ho bisogno di leggere le app di web.config nel metodo del controller MVC e di passarle per visualizzare e accedere alle impostazioni nel controller e nel servizio angularjs. Sto pensando di scorrere le app e preparare un dizionario con coppie chiave/valore e passare un oggetto modello alla mia vista. Ma come posso accedervi da nessuna parte nell'applicazione angolare?Come leggere le impostazioni web.config nel metodo del controller MVC e accedervi in ​​vista angularjs, controller e servizio?

+1

Forse questo può aiutarti - http://stackoverflow.com/questions/1197101/best-practices-for-passing-data-from-asp-net-mvc-to-javascript –

risposta

3

Il mio modo di fare questo genere di cose è praticamente solo come lei suggerisce (utilizzando JSON.net e Razor):

  1. preparo un dizionario o un oggetto grafico con i dati che voglio mettere a disposizione.
  2. Passare i dati come parte di ViewModel dal controller alla vista
  3. Serializzare i dati ViewModel, immettendoli nel modello cshtml come variabile JavaScript globale. Devo usare il seguente trucco per arrivare a questo lavoro:
<script> 
    var AppSettings = (function(o) { 
     return o; 
    })(@Html.Raw(JsonConvert.SerializeObject(Model.AppSettings))); 
</script> 
  1. Creare un servizio angolare che legge (e copie) la variabile globale JavaScript.
  2. I client dei dati accedono tramite il servizio angolare.

Il servizio è solo un involucro sottile, sebbene a volte contenga metodi logici e di accesso. Il valore qui è che si sta solo accedendo alla variabile globale (una pratica 'sporca' nel mondo angolare) da un solo punto nel codice. "Incapsula le cose brutte!"

Nota: questo richiede che l'app angolare venga pubblicata dal sito Web MVC tramite un modello cshtml.

Il vantaggio di questo approccio rispetto a effettuare una chiamata AJAX è che i dati di interesse sono disponibili quando l'app angolare è sottoposta a bootstrapping ... i dati sono accessibili tramite il servizio in modo sincrono. Questo semplifica l'accesso ai dati. Se l'asincronia è OK, suggerirei di effettuare una chiamata AJAX dal servizio, memorizzare il risultato nella cache e restituire una promessa. Con l'approccio AJAX non esiste alcun accoppiamento tra il modello angolare e il progetto MVC, consentendo di servire il modello angolare come un semplice file html.

0

se non si utilizza la vista asp.net mvc, è possibile inviare una richiesta ajax per ottenere la configurazione di fine server, la configurazione di fine del server per questa richiesta ajax.

Problemi correlati