Если развернуть узел «Ссылки» вашего веб-проекта в обозревателе решений или открыть вкладку «Управление пакетами NuGet» и отфильтровать установленные пакеты с помощью «As pNet .ScriptManager». вы увидите ссылки, такие как AspNet.ScriptManager.jQuery
и Microsoft.AspNet.ScriptManager.MSAjax
. Эти пакеты поставляются с шаблоном VS по умолчанию, и их задача состоит в том, чтобы добавить ScriptMappings в метод приложения PreApplicationStart . Например, описание пакета AspNet.ScriptManager.jQuery
выглядит следующим образом:
Этот пакет содержит сборку As pNet .ScriptManager. jQuery, которая автоматически регистрирует jQuery xyz в ScriptManager. как "jquery".
Итак, эти имена используются ScriptManager.
А вот пример определений ScriptMapping, добавленных этими пакетами:
string str = "x.y.z";
ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition
{
Path = "~/Scripts/jquery-" + str + ".min.js",
DebugPath = "~/Scripts/jquery-" + str + ".js",
CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + str + ".min.js",
CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + str + ".js",
CdnSupportsSecureConnection = true,
LoadSuccessExpression = "window.jQuery"
});
В ASP. NET 4.5 файлы сценариев Microsoft Ajax (MicrosoftAjaxCore et c) и сценарии WebForms (GridView. js et c) были отделены, чтобы их можно было обслуживать из папки сценариев приложения, а не загружать из System.Web
. Причина, по которой присутствуют атрибуты Assembly и Path, заключается в том, что ScriptManager в особых случаях обрабатывает эти сценарии при попытке их загрузки, поэтому для выполнения этой работы необходимо было выполнить специальные соглашения с кодом ScriptManager. По сути, когда ScriptManager пытается загрузить эти сценарии, он может загрузить их из System.Web или атрибута пути, и в конечном итоге в этом случае ScriptManager выводит ссылки на сценарии и обслуживает сценарии из атрибута пути.