Domanda

Mi piacerebbe avere alcune funzionalità di ScriptManager nel nuovo modello Asp.net MVC:

1- Script che combina
2- Risoluzione di percorsi diversi per file Javascript esterni
3- Minify and Gzip Compression

Qui è quello che ho trovato, ma non sono sicuro che lo sia il modo migliore per l'approccio MVC. In generale, qual è un buon approccio per gestire il codice Javascript nel modello MVC?

È stato utile?

Soluzione

Forse potresti semplicemente creare un nuovo controller "Scripts" con diverse azioni che servono diverse combinazioni di file JS compressi. Poiché MVC è progettato con un approccio orientato alle risorse, ovvero gli URL sono ora al centro del modello di programmazione, perché non definire anche semplici URI per i tuoi Javascripts?

Nelle tue visualizzazioni, ad esempio, puoi fare riferimento ai tuoi file in questo modo:

<script src="http://your_domain/scripts/all"/>

Questo chiamerebbe la tua azione "tutto", con conseguente invio di tutti i tuoi file di script compressi.

Ovviamente dovresti codificare la combinazione e la compressione per ora, o forse riutilizzare lo Scriptmanager internamente, non so se sia possibile.

Questa è solo un'idea, al momento sto facendo riferimento a singoli file javascript direttamente nelle mie pagine master.

Altri suggerimenti

Prova questo: http://www.codeplex.com/MvcScriptManager

  

MvcScriptManager ha lo scopo di trasferire alcune funzioni chiave disponibili in ToolkitScriptManager di AjaxControlToolkit nell'attuale ASP.NET MVC Framework. Sarai in grado di usarlo come controllo nell'applicazione ASP.NET MVC.

     

Caratteristiche

     
      
  1. Combinazione di script (o concatenazione). Gli script dichiarati con MvcScriptManager verranno combinati al volo in una singola richiesta di file di script quando viene visualizzata la pagina.
  2.   
  3. Minificazione (o scricchiolio) degli script in modalità di rilascio. Il processo di minimizzazione viene eseguito solo una volta alla prima richiesta che fa riferimento allo script specifico. Le richieste successive useranno il contenuto dello script crunched nella cache (vedere # 5 per i dettagli). Lo scricchiolio può essere abilitato / disabilitato per ogni script.
  4.   
  5. Rendering di risorse localizzate per file di script autonomi. Le stringhe localizzate verranno aggiunte allo script, se specificato.
  6.   
  7. Supporta le impostazioni di compressione e scadenza HTTP configurabili durante l'output degli script.
  8.   
  9. Memorizzazione nella cache degli script con dipendenza file. Il contenuto del file di script viene memorizzato nella cache in modo che il rendering del file di script combinato sia molto più performante. La dipendenza dalla cache è collegata al file fisico, pertanto qualsiasi aggiornamento di script nel file system si rifletterà immediatamente nella cache.
  10.   
  11. Supporta gli script di rendering in modalità debug / release basati sull'ambiente in esecuzione.
  12.   
  13. Risoluzione di percorsi diversi per file di script autonomi.
  14.   
  15. Supporta più MvcScriptManager su una singola pagina (o pagina master). Supporta la modalità di rendering Master e Slave in modo che gli script dichiarati con uno ScriptManager possano essere trasferiti su un altro per il rendering.
  16.   
  17. Supporto scenario Web farm ...
  18.   

O che ne dici di includere lo stesso ScriptManager, come unico abitante di un solitario, una volta per pagina <form runat="server">?

In questo modo: -

   <form runat="server">
      <asp:ScriptManager ID="ScriptManager1" runat="server" EnableScriptGlobalization="true">
      </asp:ScriptManager>
    </form>

Funziona per me.

P.S. Dovrai assicurarti che questo tag del modulo non venga mai incorporato in un altro modulo. I moduli nidificati non funzionano.

Trovato questo ricerca più o meno lo stesso problema: Un semplice ScriptManager per ASP.NET MVC - scritto dopo aver risposto a questa domanda, quindi aggiunto come riferimento.

Nel primo caso vado con la soluzione della forza bruta, cioè inserisco tutto nella pagina principale (specialmente perché ora è possibile estrarre jQuery dal CDN di Microsoft) - quindi esamineremo le opzioni per soluzioni più ottimali.

MVC 4 ora include gli helper di raggruppamento e minificazione. Definisci tutti gli script che vanno nel tuo bundle e MVC si occuperà di raggruppamento, compressione, busting della cache, ecc.

http://www.asp.net/mvc/ tutorial / MVC-4 / bundling-e-minification

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