J'ai créé un nouveau ASP.NET Formulaires Web du Projet par le biais de Visual Studio 2012. Malheureusement, le Site par défaut.Fichier maître est très déroutant. (Je suis l'affichage de ces questions ensemble, car ils sont très liés et font référence au même code un peu.)
Tout d'abord, j'ai déjà comprendre le but de la subordination et la minification, donc pas besoin d'en discuter. Cependant, je ne pas comprendre ce qui se passe avec la manière dont les scripts sont inclus dans la page maître par défaut.
Question 1:
Pourquoi un bundle nommé "~/bundles/WebFormsJs", créé à l'BundleConfig.cs fichier, et pourtant, dans la page principale, chacune de ces même personne .js fichiers sont énumérés un par un dans le ScriptManager?
À L'Intérieur De BundleConfig.cs:
bundles.Add(new ScriptBundle("~/bundles/WebFormsJs").Include(
"~/Scripts/WebForms/WebForms.js",
"~/Scripts/WebForms/WebUIValidation.js",
"~/Scripts/WebForms/MenuStandards.js",
"~/Scripts/WebForms/Focus.js",
"~/Scripts/WebForms/GridView.js",
"~/Scripts/WebForms/DetailsView.js",
"~/Scripts/WebForms/TreeView.js",
"~/Scripts/WebForms/WebParts.js"));
À L'Intérieur Du Site.Maître:
<body>
<form runat="server">
<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>
Comme vous pouvez le voir.... chacun de ces même .js fichiers individuellement, sont répertoriés dans le ScriptManager. Je n'ai même pas voir une référence à la "WebFormsJs" bundle qui a été créé n'importe où en dehors de BundleConfig.cs. Pourquoi était-ce bundle jamais créé si chacun de ces fichiers javascript allaient être référencés individuellement ici dans le ScriptManager?
Question 2:
Pourquoi un ScriptManager être utilisé de cette façon à tous? J'étais sous l'impression ScriptManager a été nécessaire pour la version de Microsoft Ajax comme l'utilisation des UpdatePanels. Quel est le but de l'utilisation de ScriptManager ici... simplement pour enregistrer les fichiers javascript?
Question 3:
Quelle est la différence dans l'enregistrement des fichiers javascript à travers le ScriptManager contre en haut du Site.Maître où il utilise la méthode suivante à la place?
<%: Scripts.Render("~/bundles/modernizr") %>
Question 4:
À l'intérieur de la ScriptManager j'ai aussi remarqué ces:
<asp:ScriptReference Name="MsAjaxBundle" />
<asp:ScriptReference Name="jquery" />
<asp:ScriptReference Name="jquery.ui.combined" />
... Je peux au moins reconnaître "MsAjaxBundle" de BundleConfig.cs, mais où sont-jquery et jquery.l'interface utilisateur.combiné défini? J'ai fait une recherche et trouvé une référence à eux dans les packages.config.
<package id="jQuery" version="1.7.1.1" targetFramework="net45" />
<package id="jQuery.UI.Combined" version="1.8.20.1" targetFramework="net45" />
Mais je ne comprends pas ce qui se passe ici. Je pensais que les paquets.config a été utilisé pour NuGet. Plus... je n'ai même pas voir un chemin énumérés ici pour l'emplacement de ces jQuery .js fichiers. Ils sont simplement énumérés ici et étrangement associé à une version particulière de l' .NET Framework (4.5 dans mon cas). Pourquoi un javascript ressource serait associée à une version de l' .NET Framework est au delà de moi.
De toute façon, la question 4: Comment est la ressource "jquery" dans le ScriptManager ajoutée/utilisé? Pourquoi ne puis-je pas voir le jQuery .js fichiers étant regroupés ensemble dans BundleConfig.cs comme tous les autres ballots??
Question 5:
Puis-je supprimer le script suivant de référence à partir du Site.Maître, si je ne suis pas la planification sur l'utilisation de l'UpdatePanel et ces sortes de Microsoft contrôles Ajax? Je suis un peu confus quant à pourquoi c'est même inclus ici par défaut.
<asp:ScriptReference Name="MsAjaxBundle" />