Работа с веб-ресурсов в ASP.NET 2.0

Переводы статьи Переводы статьи
Код статьи: 910442 - Vizualiza?i produsele pentru care se aplic? acest articol.
Поддержка ASP.NET

Работа с веб-ресурсов в ASP.NET 2.0

Чтобы настроить этот столбец в соответствии с потребностями, мы хотим пригласить вас отправил идей тем, интересующих вас и проблемы, которые необходимо просмотреть направлено в будущих статьях базы знаний и поддержка голосовой связи столбцов. Вы можете отправить свои идеи и с помощью обратной связи Попросите его форма. Имеется также ссылка на форму в нижней части этого столбца.
Развернуть все | Свернуть все

В этой статье

Введение

Привет! Меня зовут Praveen Yerneni и я работающий технический руководитель с группой поддержки ASP.NET корпорации Майкрософт. В этом месяце я собираюсь для обсуждения веб-ресурсы и как реализовать их в свой приложение.

Если вы являетесь разработчиком, который активно работает с COM элементы управления, могут пригодиться в этой статье в некоторые из ключевых адресации проблемы, которые могут возникнуть при разработке элементов управления. Ранее в корпорации Майкрософт ASP.NET 1.1, если требуется развернуть статические файлы, такие как файлы .html .css файлы, файлы изображений и файлов сценариев с помощью элемента управления COM, приходилось создавать установщик и пакет управления этих файлов вместе с COM. Хотя Это работало, оно представлено множество проблем при развертывании элемента управления. Для Пример, вы могли проблем с версией противоречит, убедитесь, что что изображения были развернуты в той же папке, или с поврежден или удаленные статические файлы, которые могут привести к сбою элемента управления.

Web Ресурсов в Microsoft ASP.NET 2.0 решает эти проблемы, предоставляя Разработчик внедрить эти ресурсы в сборку в качестве ресурсов. Для доступа к этим статические ресурсы, можно просто вызвать метод в элементе управления код.

Как работают веб-ресурсы

Веб-ресурсы используют специальный обработчик с именем WebResource.axd, который разработан для извлечения ресурсов сборки и обслуживания их в веб-обозреватель. Тип обработчика для WebResource.axd — Этот.

При поступлении запроса от клиента для WebResource.axd, обработчик ищет идентификатор веб-ресурса в методе QueryString объекта запроса . На основании значения идентификатора веб-ресурса, обработчик пытается загрузить сборку, содержащую данный ресурс. Если данный Операция выполнена успешно, затем обработчик ищет атрибут сборки и загрузить поток ресурсов из сборки. Наконец обработчик будет взять Отправлять вместе с клиентом и потока данных из ресурса Тип содержимого, указанный в атрибуте сборки.

URL-адрес WebResource.axd выглядит следующим образом:
WebResource.axd?d=SbXSD3uTnhYsK4gMD8fL84_mHPC5jJ7lfdnr1_WtsftZiUOZ6IXYG8QCXW86UizF0&t=632768953157700078
Формат этот URL-адрес: WebResource.axd?d=шифрование Идентификатор& t =значение штампа времени. В «d» обозначает запрашиваемый веб-ресурс. «t» используется отметка времени Запрошенная сборка, которая может помочь в определении того, если были внесены какие-либо изменения в ресурс.

Углубляясь в код

В моем примере я разработали элемента управления COM, который используется приложение ASP.NET Web для демонстрации этой новой функции.

COM-элемента управления для веб-ресурса

Для создания и внедрения веб-ресурса, разработаны COM элемент управления (SimpleControl). Он состоит из следующих внедренные ресурсы.
  • Два изображения, файлы с именами smallFail.gif и Эти файлы изображения используются для создания эффектов ролловера в smallSuccess.gif. элемент управления и они потребляются кода элемента управления.
  • HTML-файл с именем Help.htm. Этот файл не содержит много текста и приводятся только для демонстрации.
  • Один файл JavaScript с именем MyScript.js. Этот файл содержит код JavaScript, который также демонстрирует возможность замены Чтобы получить ссылку на другой ресурс, внедренные в рамках одного сборка.
  • Один CSS-файл с именем MyStyleSheet.css. Этот стиль затем лист потребляется непосредственно из ASP.NET веб-приложения.
В этой статье я буду обсуждать детали, необходимые для Веб-ресурсы.
Внедрение веб-ресурсы
Во-первых необходимо убедиться в том, что все статические файлы, которые добавить проект в Microsoft Visual Studio 2005, библиотека элементов управления веб внедренные ресурсы. Чтобы внедрить эти ресурсы, все, что нужно сделать — это добавить Эти файлы в Visual Studio, а затем измените свойства этих файлов, поэтому Действие при построении присвоено Встроенный Ресурс.

После этого, необходимо внести Убедитесь, что эти ресурсы ссылается атрибут сборки WebResource в файле AssemblyInfo.cs как показано ниже.
[assembly: WebResource("SimpleControl.Help.htm", "text/html")]
[assembly: WebResource("SimpleControl.MyStyleSheet.css", "text/css")]
[assembly: WebResource("SimpleControl.smallFail.gif", "image/gif")]
[assembly: WebResource("SimpleControl.smallSuccess.gif", "image/gif")]
[assembly: WebResource("SimpleControl.MyScript.js", "text/javascript", PerformSubstitution = true)]

Атрибут сборки WebResource имеет три параметра следующим образом:
  • Веб-ресурса: имя ресурса, внедренного в сборку
  • ContentType: тип MIME файла ресурса
  • PerformSubstitution: логическое значение, определяющее, является ли другие веб-адреса ресурса на которые ссылается этот ресурс производится синтаксический анализ и заменены полный путь ресурса
Получение веб-ресурсы
Для получения веб-ресурса, использовали метод GetWebResourceUrl , который является методом класса ClientScriptManager , который обычно используется для управления клиентских сценариев. Этот метод возвращает ссылку URL-адреса серверных ресурсов встроенный в сборку. Метод GetWebResourceUrl принимает два следующих параметра:
  • Тип: тип серверных ресурсов
  • Имя ресурса: имя серверного ресурса
Чтобы использовать этот метод, сначала необходимо создать экземпляр класса ClientScriptManager и получить тип класса, как показано ниже.
ClientScriptManager cs = Page.ClientScript;
            Type rsType = this.GetType();

Если экземпляр этого класса, необходимо вызывать этот метод метод и передать необходимые параметры как показано ниже, где создать кнопку гиперссылку и выбрать метод NavigateURL для внедренного ресурса HTML.
HyperLink hlHelpFile = new HyperLink();
            hlHelpFile.NavigateUrl = cs.GetWebResourceUrl(rsType, "SimpleControl.Help.htm");
            hlHelpFile.Attributes.Add("onmouseover", "ChangeImage('image1','Red')");
            hlHelpFile.Attributes.Add("onmouseout", "RollbackImage('image1','Green')");
            
            this.Controls.Add(hlHelpFile);

            Image imgTest = new Image();
            imgTest.ImageUrl = cs.GetWebResourceUrl(rsType, "SimpleControl.smallFail.gif");
            imgTest.ID = "image1";
            hlHelpFile.Controls.Add(imgTest);

Также в примере выше того же кода, я создал кнопки с изображением и входного атрибута ImageUrl его значение из другого изображения, внедренного в формате .gif ресурс.
С помощью функции подстановки
Еще одна полезная функция, с помощью веб-ресурсов является свойство PerformSubstitution атрибута WebResource , как показано в разделе "Внедрение веб-ресурсов" выше. Эта функция позволяет получить внутри другой встроенный веб-ресурсы ресурс. Если это свойство включено, обработчик WebResource будет анализировать внедренного ресурса и заменить синтаксис для атрибута сборки WebResource фактическими ресурсами перед обслуживанием страница.

В приведенном выше коде можно заметить, что элемент управления HyperLink имеет клиентского события, который называется ChangeImage. Эта функция ChangeImage находится в файле сценария. Ниже приведен код для этого сценария.
function ChangeImage(imgControl,varcolor){
   document.getElementById(imgControl).src = '<%= WebResource("SimpleControl.smallSuccess.gif")%>';
    document.getElementById('Label1').style.color = varcolor;
}

function RollbackImage(imgControl, varcolor){
   document.getElementById(imgControl).src = '<%= WebResource("SimpleControl.smallFail.gif")%>';
   document.getElementById('Label1').style.color = varcolor;
}
Данный файл сценария с именем MyScript.js, также являющееся внедренным ресурсом в одном элементе управления COM. И обратите внимание, что я использую метод WebResource для обращения к другим внедренного ресурса в сценарий файл.

Кроме того чтобы убедиться в том, что этот файл JavaScript, зарегистрированный в страницы, я использую метод RegisterClientScriptInclude класса ClientScriptManager , как показано ниже.
cs.RegisterClientScriptInclude("MyScript", cs.GetWebResourceUrl(rsType, "SimpleControl.MyScript.js"));

Использование элемента управления в ASP.NET

После создания элемента управления COM успешно, необходимо использовать этот элемент управления в клиентском проекте ASP.NET. Для этого достаточно Добавьте элемент управления в ASP.NET на панели инструментов. Можно добавить любой элемент управления Веб-форму в конструкторе.

При добавлении элемента управления в панель элементов элемент управления зарегистрирован для вас и при просмотре, добавляется следующий код синтаксис HTML.
<cc1:MSButton ID="MSButton1" runat="server" strText="Problems?"></cc1:MSButton>
В моем элементе управления COM я также внедрены файл таблицы стилей, будет ли использовать в моем приложении ASP.NET. Чтобы получить доступ к этой таблице стилей, необходимо добавить ссылка HtmlControl в HTML-страницу и задайте свойство runatсервера , как показано ниже.
<link rel="Stylesheet"  id="lnkStyle" runat="server"  />
После этого можно программно установить атрибут Href данного элемента управления, чтобы она указывала на атрибут сборки WebResource в событие Page_Load , как показано ниже.
protected void Page_Load(object sender, EventArgs e)
    {
        //Get the name of the Web Resource.
        String rsname = "SimpleControl.MyStyleSheet.css";
        
        //Get the type of the class.
        Type rstype = typeof(SimpleControl.MSButton);

        // Get a ClientScriptManager reference from the Page class.
        ClientScriptManager cs = Page.ClientScript;
        lnkStyle.Href = cs.GetWebResourceUrl(rstype, rsname);
     }

При выполнении кода появится элемент управления, который выглядит как следующие:
Свернуть это изображениеРазвернуть это изображение
 небольшой сбой
А при наведении мыши, элемент управления будет выглядеть следующим образом:
Свернуть это изображениеРазвернуть это изображение
 небольшой успех
Если щелкнуть эту ссылку, она переведет пользователя на страницу справки, которая встраивается в файл сборки элемента управления COM.

Заключение

Веб-ресурсы является полезным новая функция в ASP.NET 2.0. Можно использовать Эта функция на пользу, если использовать его мудро. Многие методы кэширования Убедитесь, что веб-ресурсы не влияет на производительность использовались приложение.

В ASP.NET 2.0 WebResource.axd используется внутри платформа.NET Framework Microsoft для извлечения внедренных ресурсов. Например Платформа.NET Framework использует WebResource.axd, чтобы получить сценарий WebUIValidation.js файл, который используется для элементов управления проверки , а также для извлечения файла сценария Menu.js элементов меню .

Ссылки

Для получения дополнительных сведений посетите следующие веб-сайты корпорации Майкрософт:
Метод ClientScriptManager.GetWebResourceUrl
http://msdn2.Microsoft.com/en-US/Library(d=robot) /system.web.ui.clientscriptmanager.getwebresourceurl.aspx

Класс WebResourceAttribute
http://msdn2.Microsoft.com/en-US/Library(d=robot) /system.web.ui.webresourceattribute.aspx

Связанные и внедренные ресурсы
http://msdn2.Microsoft.com/en-us/library/ht9h2dk8.aspx
Как всегда вы можете отправить идеи по темам, требуется устранена в будущих статьях или с помощью базы знаний Попросите его форма.

Свойства

Код статьи: 910442 - Последний отзыв: 30 апреля 2013 г. - Revision: 6.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft ASP.NET 2.0
Ключевые слова: 
kbhowto kbasp kbmt KB910442 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке: 910442
Заявление об отказе относительно содержимого статьи о продуктах, поддержка которых прекращена
Эта статья содержит сведения о продуктах, поддержка которых корпорацией Майкрософт прекращена. Поэтому она предлагается как есть и обновляться не будет.

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com