5

Ho utilizzato Visual Studio 2012 e il modello incorporato (in Aggiungi -> Nuovo progetto) per creare un nuovissimo progetto di applicazione Web ASP.NET Web Form. All'interno della pagina Site.Master fornita per impostazione predefinita, vedo alcuni markup di targeting JQuery, che è incluso in basso.Associazione di JQuery nei moduli Web ASP.NET 4.5

In che modo ASP.NET individua i percorsi necessari per includere JQuery, dato il seguente mark up?

<asp:ScriptManager runat="server"> 
    <Scripts> 
     <%--Framework Scripts--%> 
     <asp:ScriptReference Name="MsAjaxBundle" /> 
     <asp:ScriptReference Name="jquery" /> 
     <asp:ScriptReference Name="jquery.ui.combined" /> 
     <asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" /> 
     <asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" /> 
     <asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" /> 
     <asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" /> 
     <asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" /> 
     <asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" /> 
     <asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" /> 
     <asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" /> 
     <asp:ScriptReference Name="WebFormsBundle" /> 
     <%--Site Scripts--%> 
    </Scripts> 
</asp:ScriptManager> 

Non vedo da nessuna parte un file di configurazione o un codice che avrebbe risolto jQuery per "~/scripts/jquery-1.7.1.js". Vedo un file packages.config ma non descrive esplicitamente il percorso che deve essere calcolato in qualche modo.

Qualcuno sa come viene risolto il percorso del file javascript di JQuery in fase di runtime?

+0

non hai una cartella "scripts" nella tua soluzione da qualche parte? – Thousand

+0

Dai un'occhiata alla tua altra domanda qui: http://stackoverflow.com/questions/12290537/vs2012-web-forms-bundling-confusion la risposta sembra offrire alcuni chiarimenti, penso. La risposta sembra indicare che i pacchetti collocano i file jQuery nella cartella degli script che vengono poi aggiunti automaticamente in runtime da lì senza richiedere ulteriori riferimenti. – Nope

+0

Jane: sì, ho una cartella script con tutti i file javascript di JQuery lì ... ma la mia domanda è come viene generato il percorso verso questa directory. – ClearCloud8

risposta

2

All'interno del Microsoft.ScriptManager.WebForms PreAppStartCode, si ha:

 System.Web.UI.ScriptManager.ScriptResourceMapping.AddDefinition("WebFormsBundle", new ScriptResourceDefinition 
     { 
      Path = "~/bundles/WebFormsJs", 
      CdnPath = "http://ajax.aspnetcdn.com/ajax/4.5/6/WebFormsBundle.js", 
      LoadSuccessExpression="window.WebForm_PostBackOptions", 
      CdnSupportsSecureConnection = true 
     }); 

Questo è ciò che si aggancia alle dichiarazioni dal riferimento script:

<asp:ScriptReference Name="WebFormsBundle" />

E anche fa la deduplicazione perché il percorso di ScriptReference è uguale al percorso dei file all'interno del pacchetto che deve essere registrato all'interno di BundleConfig.cs

+2

Per chi si chiede dove si trova, se si riflette 'Microsoft.ScriptManager.WebForms.dll' è nel metodo' Start() '. – maxp

+0

Ancora non capisco perché tu abbia il webformsbundle in BundleConfig.cs e nello ScriptManager. Dici che è per "deduplicazione", ma cosa significa? Deduplicazione di cosa? Perché è definito due volte. Questo sembra ridicolo. – Matt

Problemi correlati