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?
risposta
Il mio modo di fare questo genere di cose è praticamente solo come lei suggerisce (utilizzando JSON.net e Razor):
- preparo un dizionario o un oggetto grafico con i dati che voglio mettere a disposizione.
- Passare i dati come parte di ViewModel dal controller alla vista
- 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>
- Creare un servizio angolare che legge (e copie) la variabile globale JavaScript.
- 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.
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.
Forse questo può aiutarti - http://stackoverflow.com/questions/1197101/best-practices-for-passing-data-from-asp-net-mvc-to-javascript –