Asp представление об active server pages


Содержание

Программирование | ASP (Active Server Pages)

ASP (англ. Active Server Pages — «активные серверные страницы») — технология, предложенная компанией Microsoft в 1996 году для создания Web-приложений. Эта технология основана на внедрении в обыкновенные веб-страницы специальных элементов управления, допускающих программное управление.

По своей сути, ASP — это технология динамического создания страниц на стороне сервера, приблизившая проектирование и реализацию Web-приложений к той модели, по которой проектируются и реализуются обычные приложения.

Для реализации приложений ASP используются языки сценариев (VBScript или JScript). Также допускается применение COM-компонентов.

Технология ASP разработана для операционных систем из семейства Windows NT и функционирует под управлением веб-сервера Microsoft IIS.

Технология ASP получила своё развитие в виде ASP.NET — технологии создания веб-приложений, основанной уже на платформе Microsoft .NET.

ASP в своём развитии прошёл через несколько версий:

ASP 1.0 (распространяется с IIS 3.0) в декабре 1996 года.
ASP 2.0 (распространяется с IIS 4.0) в сентябре 1997 года.
ASP 3.0 (распространяется с IIS 5.0) в ноябре 2000 года.

ASP.NET MVC — это инфраструктура для разработки веб-приложений от Microsoft, которая сочетает в себе эффективность и аккуратность архитектуры «модель-представление-контроллер» (model-view-controller — MVC), новейшие идеи и приемы гибкой разработки, а также все лучшее из существующей платформы ASP.NET. Она представляет собой полномасштабную альтернативу традиционной технологии ASP.NET Web Forms, предоставляя преимущества для всех проектов веб-разработки, кроме самых тривиальных.

На момент своего появления в 2002 г. платформа ASP.NET оказалась огромным шагом вперед. На рисунке ниже показано, как выглядел на то время стек технологий Microsoft.

В Web Forms разработчики из Microsoft попытались сокрыть как протокол HTTP (с присущим ему отсутствием состояния), так и язык HTML (который на тот момент был незнаком многим разработчикам) за счет моделирования пользовательского интерфейса в виде иерархии объектов, представляющих серверные элементы управления. Каждый элемент управления отслеживает собственное состояние между запросами (с помощью средства View State (состояние представления) ), по мере необходимости визуализируя себя в виде HTML-разметки, и автоматически соединяя события клиентской стороны (например, щелчки на кнопках) с соответствующим кодом их обработки на стороне сервера.

Фактически Web Forms — это гигантский уровень абстракции, спроектированный для предоставления классического управляемого событиями графического пользовательского интерфейса через веб-среду. Идея заключалась в том, чтобы веб-разработка выглядела подобно разработке с применением Windows Forms. Разработчики больше не должны были иметь дело с последовательностями независимых запросов и ответов HTTP. Они могли мыслить терминами пользовательского интерфейса, поддерживающего состояние, и в Microsoft появилась возможность переместить армию разработчиков настольных Windows-приложений в новый мир веб-приложений.

Источники:
professorweb.ru
ru.wikipedia.org

Программирование | ASP (Active Server Pages)

Asp представление об active server pages

Обновлен: Ноябрь 2007

Состояние представления — это метод, который платформа веб-страниц ASP.NET использует для сохранения значений страницы и элемента управления между циклами обработки. При отображении разметки HTML страницы, текущее состояние страницы и значения должны сохраняться во время обратного запроса, сериализуясь в строки в кодировке base64. Затем данные сведения помещаются в скрытое поле или поля состояния представления.

В данном разделе рассматриваются следующие темы:

Состояние представления используется платформой веб-страниц ASP.NET для сохранения сведений, которые должны сохраняться между обратными передачами. К данным сведениям относятся любые нестандартные значения элементов управления.

Кроме того, состояние представления можно использовать для хранения данных приложения, относящихся к страницам.

Состояние представления — это хранилище в странице ASP.NET, которое может хранить значения, которые должны сохраняться во время обратной передачи. Платформа веб-страниц использует состояние представления для сохранения параметров элемента управления между обратными передачами.

Состояние представления можно использовать в собственных приложениях для выполнения следующих задач:

Сохранения значений между обратными передачами, не сохраняя значения в состоянии сеанса или в профиле пользователя.

Хранения задаваемых значений страницы или свойств элемента управления.

Создания пользовательского поставщика состояния представления, который позволяет хранить сведения состояния представления в базе данных SQL Server или в другом хранилище данных.

Например, можно хранить сведения в состоянии представления, к которому созданный код имеет доступ во время события загрузки страницы следующего запроса, когда страница отправляется на сервер. Рекомендации по использованию см. в разделе Рекомендации по управлению состоянием ASP.NET .

Веб-приложение является приложением с неопределенным состоянием. Новый экземпляр класса веб-страницы создается при каждом запросе страницы у сервера. Как правило, это означает, что все данные на странице и в ее элементах управления будут потеряны при каждом цикле обработки. Например, по умолчанию, если пользователь вводит сведения в текстовое поле на веб-странице HTML, эти данные отправляются на сервер. Однако данные не возвращаются веб-обозревателю в ответе.

Чтобы преодолеть данное внутреннее ограничение веб-программирования, платформа веб-страниц ASP.NET включает несколько возможностей управления состоянием, позволяющих сохранять значения страницы и элемента управления между циклами обработки на веб-сервере. Одна из данных возможностей представляет собой состояние представления Общие сведения об управлении состоянием ASP.NET .

По умолчанию, платформа веб-страниц ASP.NET использует состояние представления для сохранения значений страницы и элементов управления между циклами обработки. При отображении HTML кода страницы, текущее состояние страницы и значения должны сохраняться во время обратной передачи, сериализуясь в строки в кодировке base64. Затем они помещаются в скрытое поле или поля в странице.

Доступ к состоянию представления можно получить в коде с помощью свойства страницы ViewState . ViewState свойство является словарем, содержащим пары ключ/значение, которые содержат данные состояния представления.

Пользователь-злоумышленник может легко просмотреть и изменить содержимое скрытого поля. Дополнительные сведения о том, как защитить состояние представления данных, см. далее в подразделе Защита состояния представления.

Рекомендации о том, когда следует хранить данные в состоянии представления, см. в разделе Рекомендации по управлению состоянием ASP.NET .

Можно изменить поведение по умолчанию и сохранять состояние представления в другом месте, например, в базе данных SQL Server, путем реализации пользовательского класса PageStatePersister для хранения данных страницы. Пример сохранения состояния страницы в потоке, а не в скрытом поле см. в примере для класса PageStatePersister .

Вопросы по использованию состояния представления

Состояние представления предоставляет сведения о состоянии для конкретной страницы ASP.NET. Если требуется использовать данные по более чем одной странице, или, если требуется сохранить сведения при перемещении внутри веб-узла, необходимо использовать другой метод для сохранения сведений о состоянии. Например, можно использовать состояние приложения, состояние сеанса или профиль свойств.

Сведения состояния представления сериализуются в XML и затем кодируются с помощью кодировки base-64, которая может генерировать большой объем данных. Когда страница отправляется на сервер, содержимое состояния представления отправляется как часть сведений обратной передачи страницы. Если состояние представления содержит большой объем данных, то это может повлиять на производительность страницы. Проверьте производительность страниц с помощью обычных данных для приложения, чтобы определить, является ли причиной проблем производительности размер состояния представления. Альтернативные варианты использования состояния представления см. в разделе Рекомендации по управлению состоянием ASP.NET .

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

Примечание о безопасности.

Даже если явно отключить состояние представления, скрытое поле по-прежнему отправляется в веб-обозреватель, чтобы указать, что происходит обратная передача для страницы.

Другой момент заключается в том, что, если объем данных в скрытом поле становится большим, некоторые прокси-серверы и брандмауэры будут запрещать доступ к странице, которая содержит их. Поскольку максимально допустимый объем может меняться в зависимости от брандмауэра и реализации прокси-сервера, большие скрытые поля могут вызывать периодические проблемы. Если объем данных, который хранится в свойстве ViewState превышает значение, указанное в свойстве страницы MaxPageStateFieldLength , страница разбивает состояние представления между несколькими скрытыми полями. Это позволяет сократить размер отдельных скрытых полей до значения, пропускаемого брандмауэрами.

Некоторые мобильные устройства вообще не предоставляют скрытых полей. Следовательно, состояние представления не будет работать для этих устройств. Дополнительные сведения и альтернативные методы см. в разделе Общие сведения о веб-разработке ASP.NET для мобильных устройств .

Состояние элемента управления

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

Сохранение значений в состоянии представления

Сведения состояния представления доступны с помощью свойства страницы ViewState , которое предоставляет объект словаря. Данный словарь можно использовать для хранения пользовательских значений. Обычно словарь используется для хранения значения настраиваемых свойств, которые определены для страницы.

Поскольку состояние представления отправляется в виде скрытого поля, вносить изменения для состояния представления можно до возникновения события страницы PreRenderComplete . После отображения страницы в веб-обозревателе, изменения состояния представления не будут сохранены.

Сведения в скрытом поле состояния представления могут просматриваться пользователями, если они просматривают источник веб-страницы и смогут декодировать строки в кодировке base-64. Это создает потенциальную уязвимость. Дополнительные сведения о проблемах безопасности состояния представления см. далее в подразделе Защита состояния представления.

Примечание.

Чтобы использовать свойство ViewState , веб-страница ASP.NET должна иметь элемент, имеющий атрибут form runat=»server» .

Для сохранения значений в состоянии представления создайте новый элемент, содержащий значение для сохранения и добавления элемента в словарь состояния представления. В следующем примере показана веб-страница ASP.NET с кодом, который сохраняет строку и целое значение в состоянии представления.

Типы данных, которые можно хранить в состоянии представления

В состоянии представления можно хранить объекты следующих типов:

Значения типа Boolean

Собственные преобразователи типа (дополнительные сведения см. в описании класса TypeConverter ).

Можно хранить и другие типы данных, но класс должен быть скомпилирован с атрибутом Serializable таким образом, чтобы его значения могли быть сериализованы для состояния представления.

Считывание значений из состояния представления

Чтобы прочитать значение из состояния представления, необходимо получить ViewState свойство страницы и затем прочитать значение из словаря состояния представления.

В следующем примере показано, как можно получить объект ArrayList с именем arrayListInViewState из состояния представления и затем привязать элемент управления GridView к объекту в качестве источника данных.

Значения в состоянии представления имеют тип String . Если в Visual Basic задано Option Strict On , необходимо привести значения состояния представления в соответствующий тип до начала работы со значениями, как показано в предыдущем примере. В C# при чтении состояния представления необходимо всегда приводить значения к соответствующему типу.

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

При попытке использовать несуществующий элемент состояния представления каким-либо другим способом (например, выяснить его тип) будет создано исключение NullReferenceException .

Защита состояния представления

По умолчанию состояние представления данных хранится на странице в скрытом поле и кодируется с использованием кодировки base64. Кроме того, хэш состояния представления данных создается из данных с помощью ключа кода проверки подлинности компьютера (MAC). Хэш-значение добавляется в закодированное состояние представления данных и результирующая строка сохраняется на странице. Когда страница возвращается обратно на сервер, платформа веб-страниц ASP.NET заново вычисляет хэш-значение и сравнивает его со значением, которое хранится в состоянии представления. Если хэш-значения не совпадают, возникает исключение, которое указывает, что данные состояния представления могут быть недопустимыми.

Создавая хэш-значение, платформа веб-страниц ASP.NET может проверить являются ли данные состояния представления поврежденными или подделанными. Однако, даже если данные не подделаны, данные состояния представления могут быть перехвачены и прочитаны пользователями-злоумышленниками.

Использование кода проверки подлинности сообщения для вычисления хэш-значения состояния представления

MAC-ключ, используемый для вычисления хэш-значения состояния представления, либо генерируется автоматически, либо задается в файле Machine.config. Если ключ генерируется автоматически, то он создается на основе MAC-адреса компьютера, который является уникальным значением GUID сетевого адаптера компьютера.

Обратное вычисление MAC-ключа на основе хэш-значения в состоянии представления является очень трудной задачей для пользователей-злоумышленников. Таким образом, кодирование с помощью MAC адреса является достаточно надежным способом определения изменения данных состояния представления.

Как правило, чем больше MAC-ключ, используемый для создания хэш-значения, тем меньше вероятность того, что хэш-значения для различных строк будут совпадать. Если ключ генерируется автоматически, для создания большого ключа ASP.NET использует алгоритм кодирования SHA-1. Однако в среде веб-фермы ключ должен быть одинаковым для всех серверов. Если ключ не совпадает, страница отправляется обратно на сервер, который создал страницу, и платформа веб-страниц ASP.NET вызывает исключение. Поэтому в среде веб-фермы вместо автоматического создания ключа необходимо указать ключ в файле Machine.config. В этом случае убедитесь, что создается ключ, являющийся достаточно безопасным для хэшированного значения. Однако, чем больше ключ, тем больше времени необходимо для создания хэш-значения. Следовательно, необходимо сравнить требования безопасности и производительности.

Шифрование состояния представления

Хотя MAC-кодирование помогает избежать искажения данных состояния представления, оно не запрещает пользователям выполнять просмотр данных. Существует два способа предотвращения просмотра данных: передача страниц по протоколу SSL и шифрование данных в состоянии представления. Требование передачи страницы по протоколу SSL может помочь предотвратить перехват данных пакета и несанкционированный доступ к данным пользователями, которые не являются получателями страницы.

Однако пользователь, который запросил страницу, может по-прежнему просматривать данные состояния представления, так как протокол SSL расшифровывает страницу для отображения в веб-обозревателе. Это правильно, если не беспокоиться об авторизованных пользователях, имеющих доступ к данным состояния представления. Однако, в некоторых случаях элементы управления могут использовать состояние представления для хранения сведений, к которым пользователи должны иметь доступ. Например, страница может содержать элементы управления с привязкой к данным, в которых идентификаторы элементов (ключи данных) хранятся в состоянии представления. Если данные идентификаторы содержат конфиденциальные данные, например, коды клиентов, следует зашифровать данные состояния представления в дополнение или вместо отправки страницы по SSL.

Для шифрования данных присвойте свойству страницы ViewStateEncryptionMode значение true . Если сведения хранятся в режиме представления, можно использовать обычные методы чтения и записи. Страница сама выполнит шифрование и расшифровку данных. Шифрование данных состояния представления может повлиять на производительность приложения. Следовательно, не следует использовать шифрование без необходимости.

Шифрование состояния элемента управления

Элементам управления, использующим состояние элемента управления, может потребоваться шифрование состояния представления с помощью метода RegisterRequiresViewStateEncryption . Если любой элемент управления на странице требует, чтобы состояние представления было зашифровано, будут зашифрованы все состояния представления на странице.

Кодирование состояния представления для конкретного пользователя

Если веб-узел выполняет проверку подлинности пользователей, можно задать свойство ViewStateUserKey в обработчике событий Page_Init , чтобы связать состояние представления страницы с конкретным пользователем. Это помогает предотвратить мгновенные атаки, в которых пользователь-злоумышленник создает действительную и предварительно заполненную веб-страницу с состоянием представления из ранее созданной страницы. Затем атакующий заставляет жертву щелкнуть ссылку, которая отправляет страницу на сервер с помощью идентификации жертвы.

Если задано свойство ViewStateUserKey , идентификация атакующего используется для создания хэша состояния представления первичной страницы. Когда жертва завлечена для повторной отправки страницы, хэш-значения будут отличаться, поскольку отличаются ключи пользователя. Страница не пройдет проверку и возникнет исключение.

Свойство ViewStateUserKey необходимо связать с уникальным значением для каждого пользователя, например, именем пользователя или идентификатором.

Защита конфигурации в общей среде размещения

В общей среде размещения пользователи-злоумышленники потенциально могут изменить свойства управления представлением, что может повлиять на другие приложения на компьютере. Это можно сделать путем изменения файла Machine.config, изменения конфигурации классов и других средств администрирования и конфигурации. Поможет предотвратить изменение конфигурации приложения путем шифрования разделов файлов конфигурации. Дополнительные сведения см. в разделе Шифрование сведений о конфигурации с помощью функции защищенной конфигурации .

Предоставляет объект словаря для сохранения значений между запросами для одной страницы.

Предоставляет средства для определения пользовательских механизмов для хранения сведений состояния представления, например, в базе данных SQL Server.

Asp представление об active server pages

Active Server Pages — это среда программирования, которая обеспечивает возможность комбинирования HTML, скриптов и компонент для создания динамических Web-приложений. Возможность встраивания в Web-страницы скриптов (кода, написанного на языке программирования, например, VBScript или JScript) позволяет логичным образом объединить оформление с данными, полученными из различных источников, например, из БД.

Идеология создания современных Web-приложений заключается в инкапсуляции бизнес-логики в отдельные компоненты, написанные по технологии COM. Технология ASP в данном случае является связующим звеном между этими компонентами и интерфейсом Web-приложения.

Принципы функционирования

Использование Active Server Pages не требует специфичных браузеров. Все ASP-скрипты запускаются и выполняются на Web-сервере, причем брaузер получает только результирующие HTML-файлы. Microsoft Internet Information Server, начиная с версии 3.0, поддерживает Active Server Pages.

Рассмотрим последовательность функционирования ASP. Клиент запрашивает ASP-страницу на Web-сервере. Сервер принимает запрос и начинает его обрабатывать. По расширению файла (.asp) определяет, что данный файл содержит ASP-скрипт, и начинает анализировать его содержимое, последовательно интерпретируя и выполняя вставки ASP-кода. ASP-код, в свою очередь, может содержать обращения к различным источникам данных, осуществлять обработку полученных данных и добавлять содержимое генерируемой страницы. В результате формируется «обычная» HTML-страница (уже не содержащая ASP-кода), которая и отправляется обратно клиенту.

Внешне ASP функционирует также, как CGI. Аналогичным образом передаются параметры (формат-строки запроса) и осуществляется вывод результатов. Однако производительность ASP оказывается гораздо выше, т. к. при каждом запросе не происходит отдельной загрузки ASP-интерпретатора. Использование компонент ActiveX также значительно повышает производительность Web-сервера.

Описание синтаксиса

ASP-код, который нужно выполнить на сервере, размещается внутри специальных тегов . Так как данный код обрабатывается на сервере, он не доступен пользователю. Сам код может быть написан с использованием Visual Basic Scripting Edition (VBScript) или JScript (JavaScript). Технология ASP позволяет использовать и другие языки программирования. По сути, нужно говорить не о синтаксисе ASP, а о том языке, который используется для написания ASP-кода. Синтаксис VBScript намного проще других языков, поэтому новичку будет легко в нем разобраться.

Объекты и компоненты

VBScript не является полнофункциональным языком программирования и использования встроенных в него средств явно недостаточно. Поэтому в ASP-страницах используются специальные объекты и компоненты ActiveX.

Существует набор «встроенных» объектов, которые инициализируются и предоставляются ASP-скрипту автоматически при начале обработки. Эти объекты обеспечивают доступ к основным «жизненно важным» функциям:

  • Объект Application позволяет создавать переменные, доступные всем пользователям Web-приложения.
  • Объект Session позволяет сохранять данные, связанные с отдельным пользователем.
  • Объект Request предоставляет параметры CGI-запроса, отправленные методом POST 99или GET.
  • Объект Response предоставляет методы для добавления информации, а также для формирования заголовков страницы ответа Web-сервера.
  • Объект Server содержит множество различных методов, одним из которых является метод CreateObject, позволяющий создавать экземпляры компонент ActiveX.

В отличие от встроенных ASP-объектов, ASP-компоненты явно необходимо создавать в коде скрипта. Существует огромное количество ActiveX-компонент, которые можно использовать в ASP-страницах, причем большинство из них распространяются бесплатно. Более того, разработчик может сам создавать ActiveX-компоненты в любой среде программирования, поддерживающей COM-технологию, например, Visual C++ или Visual Basic.

Следует уделить особое внимание объектам ADO (ActiveX Data Objects), которые представляют собой мощные интегрированные средства для создания приложений для работы с БД. Компоненты ADO обеспечивают быстрый и удобный интерфейс к БД на самом высоком уровне, при этом сохраняется переносимость разрабатываемых приложений для работы с другими БД. Использование компонент ADO значительно упрощает работу программиста, ему остается лишь правильно составить SQL-запросы к БД и позаботиться о выводе результатов.

В рамках функционирования Web-приложения существует возможность создания обработчиков основных событий, таких как запуск и остановка Web-приложения, а также открытие и закрытие пользовательской сессии. Эти события описываются в специальном ASP-файле global.asa. Обработчики данных событий можно использовать для инициализации объектов или установки значений глобальных переменных.

Средства разработки

Создавать ASP-страницы можно в любом текстовом редакторе, но это далеко не всегда удобно. Помимо написания кода на VBScript, необходимо осуществлять его отладку, что возможно только на функционирующем Web-сервере (IIS) и при наличии специальных средств.

Microsoft Visual InterDev 6.0 (входящий в состав Microsoft Visual Studio) является одним из лучших средств, которое позволяет не только быстро и эффективно создавать ASP-код, но и осуществлять расширенную отладку кода. Основные особенности этого продукта:

  • Просмотр списка используемых объектов, и возможность быстрого написания кода.
  • Подсветка синтаксиса кода (VBScript и JScript).
  • Автоматическое формирование содержимого global.asa.
  • При запуске в режиме отладки InterDev автоматически настраивает Web-сервер (IIS) в нужный режим, а по окончании отладки восстанавливает настройки.
  • Возможность установки точек прерывания (breakpoints).
  • Просмотр значений переменных (watches) и списка вызванных процедур (call stack).

Существуют также и другие специализированные редакторы, позволяющие разрабатывать ASP-приложения, например, Home Site 4.5, Macromedia UltraDev 4.0 или ASP Express. Однако эти средства не полностью охватывают возможности Visual InterDev.

Новые возможности в IIS 5.0

Последняя версия Web-сервера Internet Information Server (IIS) 5.0 значительно усовершенствована, благодаря чему повышена надежность и производительность ASP-приложений. Встроенные объекты ASP в Windows 2000 обладают новыми методами, которые расширяют возможности разработчика.

Появились новые средства обработки ошибок. С помощью нового объекта AppError теперь можно получать сведения об ошибках, происходящих как на стадии выполнения, так и на стадии разбора страницы.

В новой версии ядра управления сценариями Script Engine из состава Windows 2000 появились новые мощные средства поддержки языков VBScript и JScript. В сценариях на VBScript теперь можно пользоваться средствами проверки и разбора сложных выражений, а также создавать классы.

Средства доступа к данным также претерпели значительные изменения — теперь в составе ОС поставляется ядро MDAC 2.5, которое, в частности, обеспечивает интеграцию со средствами XML.

Поддержка других языков программирования

Наравне с Visual Basic Scripting Edition (VBScript), IIS поддерживает обработку JScript (JavaScript). Вы можете использовать все те же объекты, при этом меняется только синтаксис связующих конструкций.

ASP.Net — введение, жизненный цикл и программа Hello World

ASP.Net — это платформа для веб-разработки, созданная корпорацией Microsoft . Она была выпущена в 2002 году.

Последняя версия ASP.Net — 4.6. предназначена для работы с протоколом HTTP . Это стандартный протокол, используемый во всех веб-приложениях.

ASP.Net-приложения можно создавать на различных .Net-языках . К ним относятся C # , VB.NET и J # .

Из этой статьи об ASP.Net для начинающих вы узнаете:

  • Что такое ASP.Net ?
  • О жизненном цикле ASP.Net ;
  • О жизненном цикле страницы ASP.Net ;
  • Как создать простую программу на ASP.Net .

Что такое ASP.Net?

ASP.Net — это платформа, которая используется для разработки веб-приложений. Базовая архитектура ASP.Net приведена ниже:

Архитектура .Net Framework включает в себя следующие компоненты:

  1. Язык — в .Net для разработки веб-приложений используются VB.net и C# ;
  2. Библиотека — .NET включает в себя набор библиотек стандартных классов. В частности, библиотека Web используется для разработки веб-приложений;
  3. Common Language Runtime (CLR) — общеязыковая инфраструктура или CLI . На ее основе выполняются .Net программы. CLR используется для выполнения ключевых действий. Действия включают в себя обработку исключений и освобождение ресурсов ( Garbage Collection ).

Ключевые характеристики ASP.Net , важные для начинающих:

  • Разделения дизайна и кода — позволяет легче поддерживать приложения ASP.NET . Общий тип файлов ASP.Net — aspx . Предположим, что у нас есть веб-страница с именем MyPage.aspx . К ней должен прилагаться еще один файл с именем MyPage.aspx.cs , содержащий часть кода страницы. Таким образом, Visual Studio создает отдельные файлы для каждой веб-страницы: один для дизайна, а второй для кода.
  • Управление состоянием — ASP.Net позволяет управлять состоянием. HTTP известен, как протокол, не имеющий состояний. Давайте в качестве примера рассмотрим приложение корзины интернет-магазина. Когда пользователь решил, какой товар он хочет купить, он нажимает кнопку « Добавить в корзину ».

Приложение должно запомнить информацию, касающуюся того, что пользователь решил приобрести. Это называется запоминание состояния приложения в текущий момент времени. Протокол HTTP не поддерживает состояний. Когда пользователь переходит на страницу оплаты товара, HTTP не сохраняет информацию о товарах, находящихся в корзине. Чтобы перенести их на страницу оплаты, нужно добавить код. Такая реализация может стать более сложной. Но ASP.Net позволяет управлять состояниями: запоминать товары в корзине и передавать их на страницу оплаты.

  • Кэширование — ASP.Net реализовывает концепцию кэширования. Это улучшает производительность приложения. Кэшируя те страницы, которые часто запрашиваются, их можно держать во временном хранилище. Эти страницы можно быстрее извлечь, уменьшая время отклика. Так что кэширование может значительно повысить производительность приложения.

Жизненный цикл ASP.Net

При изучении ASP.Net mvc 4 для начинающих важно знать жизненный цикл приложения. Когда запускается приложение ASP.Net , выполняется несколько этапов. Эта цепочка составляет жизненный цикл приложения:

  1. Запуск — жизненный цикл приложения ASP.NET начинается, когда пользователь выполняет запрос, направленный на веб-сервер к приложению ASP.Net . Обычно это происходит, когда пользователь переходит на главную страницу приложения в первый раз. В течение этого времени существует метод, называемый Application_Start , который выполняется на веб-сервере. В этом методе для всех глобальных переменных устанавливаются их значения по умолчанию;
  2. Создание объектов — создание на веб-сервере HttpContext , HttpRequest и HttpResponse . HttpContext — это контейнер для объектов HTTPRequest и HTTPResponse . Объект HttpRequest содержит информацию о текущем запросе, включая куки и информацию браузера. Объект HttpResponse содержит ответ, который отправляется клиенту;
  3. Создание HttpApplication — этот объект создается на веб-сервере. Он используется для обработки каждого последующего запроса, адресованного приложению. Предположим, что у нас есть два веб-приложения. Одним из них является приложение корзины, а другое — это новостной сайт. Для каждого приложения создается объект HttpApplication . Все дальнейшие запросы к каждому сайту будут обрабатываться соответствующим экземпляром HttpApplication ;
  4. Сброс — это событие вызывается до удаления экземпляра приложения. В это время можно использовать данный метод, чтобы вручную сбросить любой неуправляемый ресурс;
  5. Конец приложения — на данном этапе приложение окончательно выгружается из памяти.

Жизненный цикл страницы ASP.Net

Когда вызывается страница ASP.Net , она проходит определенный жизненный цикл. Этапы этого цикла выполняются до того момента, как ответ будет отправлен пользователю.

В рамках этой статьи ASP.Net для начинающих рассмотрим последовательность этапов обработки страницы:

  1. Запрос страницы — когда страница запрашивается, сервер проверяет, запрашивается ли она в первый раз. Если да, то страница создается, обрабатывается ответ и отправляется пользователю. Если страница запрашивается не в первый раз, проверяется кэш. Если страница существует в кэше, сохраненный ответ отправляется пользователю;
  2. Запуск страницы — на этом этапе создаются объекты Request и Response . Объект Request используется для хранения информации, которая была отправлена при запросе страницы. Объект Response используется для хранения информации, которая отправляется обратно пользователю;
  3. Инициализация страницы — на этом этапе инициализируются все элементы управления веб-страницы;
  4. Загрузка страницы — страница загружается со всеми значениями по умолчанию. Например, если текстовое поле должно иметь значение по умолчанию, оно загружается во время page load ;
  5. Валидация — в некоторых случаях для определенных форм может быть задана валидация. Например, может запрашиваться подтверждение того, что элемент списка содержит определенный набор значений. Если условие не выполняется, должна выводиться ошибка при загрузке страницы;
  6. Повторная обработка событий — возникает, если страница загружается снова. Это происходит в ответ на предыдущее событие. Если пользователь нажимает на кнопку отправки данных на странице. В этом случае та же страница отображается снова. Тогда вызывается повторный обработчик события;
  7. Отображение страницы — происходит перед тем, как ответ отправляется пользователю. Вся информация о форме сохраняется, а результат отправляется пользователю в виде полной веб-страницы;
  8. Выгрузка — после того, как страница отправляется пользователю, больше нет необходимости хранить объекты веб-формы в памяти. Таким образом, процесс выгрузки включает в себя удаление всех ненужных объектов из памяти.

Программа «Hello World» в ASP.Net

Изучение ASP.Net web forms для начинающих лучше начать с создания простого приложение « Hello, World «. Для этого необходимо выполнить следующие шаги.

Шаг 1: Создание нового проекта в Visual Studio . После запуска Visual Studio нужно выбрать пункт меню Новый> Проект :

Шаг 2: Следующим шагом является выбор типа проекта — веб-приложение ASP.NET . Здесь нужно указать название и расположение проекта.

  1. В диалоговом окне проекта выберите вариант « Веб » в левой панели. А затем « Веб-приложение ASP.Net »;
  2. Задайте имя приложения и место его хранения;
  3. Нажимаем на кнопку « OK », чтобы Visual Studio создал проект.

Шаг 3: В следующем окне нужно выбрать тип веб-приложения ASP.NET , которое должно быть создано. Мы хотим создать простое приложение веб-формы.

  • Выберите тип проекта – « Пустой »;
  • Выберите опцию « Веб-форма ». После этого будут добавлены общие папки. Они необходимы для создания базового приложения веб-формы;
  • В конце нажимаем на кнопку « OK », чтобы Visual Studio создал приложение.

Если вы выполните указанные выше шаги руководства ASP.Net для начинающих, то получите в Visual Studio результат, продемонстрированный на рисунке ниже:

В « Solution explorer » появится приложение DemoApplication . Оно содержит два файла проекта, как показано на рисунке выше. Один из ключевых файлов проекта — это Global.asax.cs . Он содержит информацию конкретного приложения. В этом файле можно инициализировать все переменные, определив для них значения по умолчанию.

Шаг 4: Теперь пришло время добавить в проект файл веб-формы. Это файл, который будет содержать весь код проекта.

  • Кликните правой кнопкой мыши по DemoApplication ;
  • Выберите из контекстного меню пункт Добавить> Веб-форма .

Шаг 5: В следующем окне задайте имя веб-формы. В нашем случае это будет Demo .

Visual Studio автоматически создаст веб-форму Demo и откроет ее.

Шаг 6: Следующим шагом является добавление кода, который позволит отобразить « Hello World «. Это можно сделать, добавив одну строку кода в файл Demo.aspx :

  • Объект Response в ASP.Net используется для передачи информации обратно пользователю. В данном случае мы используем метод Write объекта Response , чтобы написать текст « Hello World «. Маркеры используются для добавления специфического кода ASP.net .

Если вы выполните все шаги, перечисленные в этой статье об ASP.Net mvc для начинающих и запустите созданную программу в Visual Studio , то получите следующий результат:

В окне браузера отображается фраза « Hello, World «.

Лекция 6 Active Server Pages (ASP )Active Server Pages (ASP ) –Основы. –GLOBAL.ASA –Объекты и компоненты. –Объект Application. –Объект Session. –Объект. — презентация

Презентация была опубликована 6 лет назад пользователемИгорь Торицын

Похожие презентации

Презентация на тему: » Лекция 6 Active Server Pages (ASP )Active Server Pages (ASP ) –Основы. –GLOBAL.ASA –Объекты и компоненты. –Объект Application. –Объект Session. –Объект.» — Транскрипт:

1 Лекция 6 Active Server Pages (ASP )Active Server Pages (ASP ) –Основы. –GLOBAL.ASA –Объекты и компоненты. –Объект Application. –Объект Session. –Объект Request. –Объект Response. –Объект Server.

2 Основы ASP Active Server Pages активные серверные страницы.Active Server Pages активные серверные страницы. ASP — сценарий на VBScript, который исполняется на сервере. Когда запрашивается страница, этот сценарий порождает HTML- текст.ASP — сценарий на VBScript, который исполняется на сервере. Когда запрашивается страница, этот сценарий порождает HTML- текст. К лиент никогда не видит кода, а только результирующий HTML, который воспринимает любая программа просмотра.К лиент никогда не видит кода, а только результирующий HTML, который воспринимает любая программа просмотра.

3 Пример Пример демонстрирует простую ASP-страницу, которая создает приветствие в соответствии со временем суток. В нем текущий час определяется при помощи кода Hour(Now), где Now функция VBScript, возвращающая текущий момент времени и дату.Пример демонстрирует простую ASP-страницу, которая создает приветствие в соответствии со временем суток. В нем текущий час определяется при помощи кода Hour(Now), где Now функция VBScript, возвращающая текущий момент времени и дату.Пример

17 Then strGreeting = Добрый вечер! End If %>» title=»Пример Листинг 1. Простой пример ASP.Листинг 1. Простой пример ASP. Simple ASP Example Simple ASP Example 11 And Hour(Now) 11 And Hour(Now) 17 Then strGreeting = Добрый вечер! End If %>» > 4 Пример Листинг 1. Простой пример ASP.Листинг 1. Простой пример ASP. Simple ASP Example Simple ASP Example 11 And Hour(Now) 11 And Hour(Now) 17 Then strGreeting = «Добрый вечер!» End If %> 17 Then strGreeting = Добрый вечер! End If %>»> 17 Then strGreeting = «Добрый вечер!» End If %>»> 17 Then strGreeting = Добрый вечер! End If %>» title=»Пример Листинг 1. Простой пример ASP.Листинг 1. Простой пример ASP. Simple ASP Example Simple ASP Example 11 And Hour(Now) 11 And Hour(Now) 17 Then strGreeting = Добрый вечер! End If %>»>

5 Особенности К од в листинге, окруженный угловыми скобками и знаками процента ( ) — серверный код, который выполняется перед тем, как страница будет послана программе просмотра.К од в листинге, окруженный угловыми скобками и знаками процента ( ) — серверный код, который выполняется перед тем, как страница будет послана программе просмотра. — на каком языке написан сценарий на данной странице. Можно использовать JavaScript. — на каком языке написан сценарий на данной странице. Можно использовать JavaScript. — п еременн ой strGreeting предшествует знак равенства, указывая, что в данное место HTML- кода нужно вставить текущее значение переменной. — п еременн ой strGreeting предшествует знак равенства, указывая, что в данное место HTML- кода нужно вставить текущее значение переменной.

6 Файл GLOBAL.ASA. В Интернете сложно создать настоящее приложение. Взаимодействие программы просмотра и Web-сервера представляет собой лишенную состояния транзакцию, в ходе которой сервер посылает клиенту Web-страницу и затем забывает о его существовании. Когда клиент запрашивает другую Web-страницу, сервер ничего не помнит о предыдущем запросе.В Интернете сложно создать настоящее приложение. Взаимодействие программы просмотра и Web-сервера представляет собой лишенную состояния транзакцию, в ходе которой сервер посылает клиенту Web-страницу и затем забывает о его существовании. Когда клиент запрашивает другую Web-страницу, сервер ничего не помнит о предыдущем запросе.

7 Файл GLOBAL.ASA. Д ля определения начала и завершения как всего приложения, так и отдельных пользовательских сессий в ASP используется файл GLOBAL.ASA.Д ля определения начала и завершения как всего приложения, так и отдельных пользовательских сессий в ASP используется файл GLOBAL.ASA. Он реагир ует на четыре ключевых события: Application_OnStart (запуск приложения), Application_OnEnd (завершение приложения), Session_OnStart (начало сессии) и Session_OnEnd (завершение сессии).Он реагир ует на четыре ключевых события: Application_OnStart (запуск приложения), Application_OnEnd (завершение приложения), Session_OnStart (начало сессии) и Session_OnEnd (завершение сессии). В листинге 2 приведен типичный файл GLOBAL.ASA.В листинге 2 приведен типичный файл GLOBAL.ASA.

8 Файл GLOBAL.ASA. Листинг 2. Файл GLOBAL.ASA.Листинг 2. Файл GLOBAL.ASA. Sub Session_OnStart End Sub Sub Session_OnEnd End Sub Sub Application_OnStart End Sub Sub Application_OnEnd End Sub

9 Файл GLOBAL.ASA. Для обозначения разделов сценария GLOBAL.ASA содержит теги. Эти теги имеют особый атрибут RUNAT=Server, который означает, что содержащийся в теге код на VBScript должен исполняться на сервере, а не на клиенте. Функционально RUNAT=Server означает то же, что и сочетания угловых скобок и знака процента, используемые для обозначения серверного сценария на Web- страницах.Для обозначения разделов сценария GLOBAL.ASA содержит теги. Эти теги имеют особый атрибут RUNAT=Server, который означает, что содержащийся в теге код на VBScript должен исполняться на сервере, а не на клиенте. Функционально RUNAT=Server означает то же, что и сочетания угловых скобок и знака процента, используемые для обозначения серверного сценария на Web- страницах.

10 Файл GLOBAL.ASA. Ф ормулировк а, предложенная Microsoft, определяет Интернет- приложение как виртуальный каталог со всеми его файлами.Ф ормулировк а, предложенная Microsoft, определяет Интернет- приложение как виртуальный каталог со всеми его файлами. Если пользователь запрашивает Web-страницу из виртуального каталога под названием Bookstore, то тем самым он запускает приложение Bookstore, и в GLOBAL.ASA возбуждаются события Application_OnStart и Session_OnStart.Если пользователь запрашивает Web-страницу из виртуального каталога под названием Bookstore, то тем самым он запускает приложение Bookstore, и в GLOBAL.ASA возбуждаются события Application_OnStart и Session_OnStart.

11 Файл GLOBAL.ASA. Согласно этому определению с приложением одновременно могут работать несколько программ просмотра.Согласно этому определению с приложением одновременно могут работать несколько программ просмотра. С обытие Application_OnStart происходит только один раз: когда первый пользователь запрашивает Web-страницу из виртуального каталога.С обытие Application_OnStart происходит только один раз: когда первый пользователь запрашивает Web-страницу из виртуального каталога. Когда страницы из этого каталога запрашивают другие пользователи, возбуждается только событие Session_OnStart.Когда страницы из этого каталога запрашивают другие пользователи, возбуждается только событие Session_OnStart. Session_OnStart


12 Файл GLOBAL.ASA. Для конкретной программы просмотра сессия длится, пока программа продолжает запрашивать страницы виртуального каталога.Для конкретной программы просмотра сессия длится, пока программа продолжает запрашивать страницы виртуального каталога. Если пользователь не запрашивает Web-страницы (из данного виртуального каталога) на протяжении 20 минут (по умолчанию), сессия завершается, и возбуждается событие Session_OnEnd.Если пользователь не запрашивает Web-страницы (из данного виртуального каталога) на протяжении 20 минут (по умолчанию), сессия завершается, и возбуждается событие Session_OnEnd. Когда в данном виртуальном каталоге завершаются все сессии, возбуждается событие Application_OnEnd.Когда в данном виртуальном каталоге завершаются все сессии, возбуждается событие Application_OnEnd.

13 Объекты и компоненты. VBScript не является полнофункциональным языком. Так, в VBScript нет встроенных функций доступа к данным; не умеет он и открывать текстовые файлы.VBScript не является полнофункциональным языком. Так, в VBScript нет встроенных функций доступа к данным; не умеет он и открывать текстовые файлы. Все это и многое другое реализуется объектами и компонентами ASP.Все это и многое другое реализуется объектами и компонентами ASP. ASP-объекты и компоненты это компоненты ActiveX, подобные обычным DLL ActiveX.ASP-объекты и компоненты это компоненты ActiveX, подобные обычным DLL ActiveX.

14 Объекты и компоненты. ASP-объекты это элементы управления ActiveX, которые в коде на VBScript доступны всегда: их не нужно создавать явно. В число объектов ASP входят Application, Session, Request, Response и Server.ASP-объекты это элементы управления ActiveX, которые в коде на VBScript доступны всегда: их не нужно создавать явно. В число объектов ASP входят Application, Session, Request, Response и Server. ASP-компоненты — это DLL, существующие вне структуры ASP. ASP-компоненты нужно явно создавать в коде. ASP поддерживает компоненты Database Access, File Access, Browser Capabilities, Ad Rotator и Content Linking.ASP-компоненты — это DLL, существующие вне структуры ASP. ASP-компоненты нужно явно создавать в коде. ASP поддерживает компоненты Database Access, File Access, Browser Capabilities, Ad Rotator и Content Linking.

15 Объект Application. Объект Application (приложение) позволяет создавать переменные приложения (application variables), доступные всем пользователям данного приложения. Все, кто обращается к Web-страницам данного виртуального каталога, могут совместно использовать любую переменную приложения определенную для этого каталога.Объект Application (приложение) позволяет создавать переменные приложения (application variables), доступные всем пользователям данного приложения. Все, кто обращается к Web-страницам данного виртуального каталога, могут совместно использовать любую переменную приложения определенную для этого каталога. В листинге 3 приведен пример программы, в не й переменная приложения служит для отслеживания времени последнего обращения к страницам приложения.В листинге 3 приведен пример программы, в не й переменная приложения служит для отслеживания времени последнего обращения к страницам приложения.пример

16 Объект Application. Листинг 3. Объект Application.Листинг 3. Объект Application. Application Variables Application Variables Эта страница последний раз посещалась: Эта страница последний раз посещалась:

17 Объект Application. Имя может быть произвольным, а переменная может содержать любую информацию, будь то число или текст.Имя может быть произвольным, а переменная может содержать любую информацию, будь то число или текст. Т акие переменные доступны нескольким пользователям одновременно.Т акие переменные доступны нескольким пользователям одновременно. Для разрешения коллизий объект Application поддерживает методы Lock и UnLock. Метод Lock блокирует весь объект Application, поэтому после изменения значения переменной разблокируйте объект.Для разрешения коллизий объект Application поддерживает методы Lock и UnLock. Метод Lock блокирует весь объект Application, поэтому после изменения значения переменной разблокируйте объект.

18 Объект Application. П еременные приложения пригодны лишь для временного хранения данных, их нельзя использовать для долговременного хранения.П еременные приложения пригодны лишь для временного хранения данных, их нельзя использовать для долговременного хранения. Все данные в переменных приложения уничтожаются, когда происходит событие Application_OnEnd. Так что, если вы хотите, чтобы они сохранились после завершения приложения, позаботьтесь о их переносе в файл или базу данных.Все данные в переменных приложения уничтожаются, когда происходит событие Application_OnEnd. Так что, если вы хотите, чтобы они сохранились после завершения приложения, позаботьтесь о их переносе в файл или базу данных.

19 Объект Session. ASP поддерживает переменные для индивидуального пользователя при помощи объекта Session (сессия), который позволяет создавать переменные сессии (session variables).ASP поддерживает переменные для индивидуального пользователя при помощи объекта Session (сессия), который позволяет создавать переменные сессии (session variables). Sub Session_OnStart Session(«Company»)=»NewTech» End Sub

20 Объект Session. Переменные сессии можно создавать на любой Web-странице или в файле GLOBAL.ASA, а доступны они на любой Web- странице приложения, в котором эти переменные были первоначально созданы.Переменные сессии можно создавать на любой Web-странице или в файле GLOBAL.ASA, а доступны они на любой Web- странице приложения, в котором эти переменные были первоначально созданы. Получить значения переменных сессии можно, считывая их из объекта Session. Следующий пример считывает переменные сессии выводит их в полях ввода:Получить значения переменных сессии можно, считывая их из объекта Session. Следующий пример считывает переменные сессии выводит их в полях ввода: пример

21 Объект Session. Как ASP запоминает переменные сессии для каждого пользователя приложения:Как ASP запоминает переменные сессии для каждого пользователя приложения: эти переменные сохраняются на сервере для каждого клиента. Программа просмотра получает от сервера уникальный идентификатор, позволяющий определить, какой набор переменных кому принадлежит. Клиент этот идентификатор (Globally Unique >

22 Объект Session. Д ля установки или считывания в р емени жизни сессии (в минутах) применяется свойство Timeout объекта Session:Д ля установки или считывания в р емени жизни сессии (в минутах) применяется свойство Timeout объекта Session: Session.Timeout=30Session.Timeout=30 Для принудительного окончания сессии и ликвидации сессионных переменных применяют метод AbandonДля принудительного окончания сессии и ликвидации сессионных переменных применяют метод Abandon Session.AbandonSession.Abandon

23 Объект Request. Для передачи данны х серверу программа просмотра использует отправку формы (form submission).Для передачи данны х серверу программа просмотра использует отправку формы (form submission). Данные имеют вид пар Поле=Значение, отсылаемых серверу открыты м текст ом.Данные имеют вид пар Поле=Значение, отсылаемых серверу открыты м текст ом. На сервере эти данные разбирает по полям объект Request. Например, следующий код вернет вам значение поля формы Name:На сервере эти данные разбирает по полям объект Request. Например, следующий код вернет вам значение поля формы Name:

24 Объект Request. Request.Form применяется, когда данные были отправлены методом POST и именно этому сценарию.Request.Form применяется, когда данные были отправлены методом POST и именно этому сценарию. Если для отправки данных используется метод GET или сценарий вызывается с передачей параметров в гиперссылкеЕсли для отправки данных используется метод GET или сценарий вызывается с передачей параметров в гиперссылке Чтобы отправить данные, щелкните здесь! Чтобы отправить данные, щелкните здесь! то для разбота данных применяют свойство Request.QueryString:то для разбота данных применяют свойство Request.QueryString:

25 Объект Request. Request.Cookies используются для извлечения информации из кукисов (cookies), отосланных вместе с запросом строке пользовательского агента программы просмотра.Request.Cookies используются для извлечения информации из кукисов (cookies), отосланных вместе с запросом строке пользовательского агента программы просмотра. Л истинг 5 демонстрирует применение свойства ServerVariables для определения имени компьютера, с которого клиент вызвал сценарий.Л истинг 5 демонстрирует применение свойства ServerVariables для определения имени компьютера, с которого клиент вызвал сценарий.демонстрирует

26 Объект Request. Листинг 5. Определение компьютера пользователя.Листинг 5. Определение компьютера пользователя. Server Variables Server Variables Вы вошли с компьютера Вы вошли с компьютера Переменные сервера представляют широкий круг информации о клиенте и Web-сервере. Доступ к каждой конкретной переменной сводится к чтению соответствующей переменной.Переменные сервера представляют широкий круг информации о клиенте и Web-сервере. Доступ к каждой конкретной переменной сводится к чтению соответствующей переменной.

27 Объект Response. Фактически в комбинации знак равенства представляет собой сокращенное обозначение метода Write объекта Response.Фактически в комбинации знак равенства представляет собой сокращенное обозначение метода Write объекта Response. С ледующие две строки кода эквивалентны:С ледующие две строки кода эквивалентны: Поскольку объект Response используется очень часто, такое сокращение оправдано.Поскольку объект Response используется очень часто, такое сокращение оправдано.

28 Объект Response. Полезное свойство объекта Response — Expires. Оно задает время (в минутах) за которое страница устаревает. Если установить его в нуль, то страница будет устаревать в момент загрузки и Internet Explorer не будет ее кэшировать. Кэширование сильно влияет на разработку и может привести к тому, что приложение будет функционировать неправильно. IE кэширует страницы двумя способами: на диске и в памяти.Полезное свойство объекта Response — Expires. Оно задает время (в минутах) за которое страница устаревает. Если установить его в нуль, то страница будет устаревать в момент загрузки и Internet Explorer не будет ее кэшировать. Кэширование сильно влияет на разработку и может привести к тому, что приложение будет функционировать неправильно. IE кэширует страницы двумя способами: на диске и в памяти.

29 Объект Response. Рассмотрим такой фрагмент кода, показывающий текущее время и дату:Рассмотрим такой фрагмент кода, показывающий текущее время и дату: Сейчас Сейчас Когда IE запрашивают страницу с этим кодом, на сервере выполняется сценарий, и на странице появляется текущее время. Однако, если программа просмотра переходит к другой странице, а затем возвращается к этой, со временем, то время не изменится, поскольку IE не запрашивает ее повторно.Когда IE запрашивают страницу с этим кодом, на сервере выполняется сценарий, и на странице появляется текущее время. Однако, если программа просмотра переходит к другой странице, а затем возвращается к этой, со временем, то время не изменится, поскольку IE не запрашивает ее повторно.

30 Объект Response. В листинге 6 приведена исправленная версия примера, устаревающая уже в момент загрузки.В листинге 6 приведена исправленная версия примера, устаревающая уже в момент загрузки.приведена Листинг 6. Страница, устаревающая уже в момент загрузки.Листинг 6. Страница, устаревающая уже в момент загрузки. Forcing a Page to Expire Forcing a Page to Expire Сейчас Сейчас

31 Объект Response. Еще один полезный метод объекта Response — Redirect, перенаправляющий программу просмотра на указанный URL:Еще один полезный метод объекта Response — Redirect, перенаправляющий программу просмотра на указанный URL:

32 Объект Response. Кроме методов (Write и Redirect) и свойства Expires у объекта Response имеется коллекция (набор однотипных объектов) Cookies. Создание элемента коллекции означает запись теневой посылки на компьютер посетителя. Каждый элемент коллекции имеет имя, одно или несколько значений и несколько свойств:Кроме методов (Write и Redirect) и свойства Expires у объекта Response имеется коллекция (набор однотипных объектов) Cookies. Создание элемента коллекции означает запись теневой посылки на компьютер посетителя. Каждый элемент коллекции имеет имя, одно или несколько значений и несколько свойств:

33 Объект Response. срок жизни (Expires),срок жизни (Expires), имя папки на сервере, сценарии из которой имеют право чтения этой теневой посылки (Path),имя папки на сервере, сценарии из которой имеют право чтения этой теневой посылки (Path), имя сервера, сценарии которого имеют право чтения этой теневой посылки (Domain).имя сервера, сценарии которого имеют право чтения этой теневой посылки (Domain).

34 Объект Response. Обязательным параметром теневой посылки является только ее имя. Остальные параметры можно не указывать. В этом случае:Обязательным параметром теневой посылки является только ее имя. Остальные параметры можно не указывать. В этом случае: Отсутствие значения приводит к стиранию теневой посылки с компьютера посетителя;Отсутствие значения приводит к стиранию теневой посылки с компьютера посетителя; Отсутствие срока жизни приводит к устареванию теневой посылки в момент закрытия браузера;Отсутствие срока жизни приводит к устареванию теневой посылки в момент закрытия браузера;

35 Объект Response. Отсутствие имени папки означает разрешение чтения теневой посылки сценариями из текущей папки;Отсутствие имени папки означает разрешение чтения теневой посылки сценариями из текущей папки; Отсутствие имени сервера означает разрешение чтения теневой посылки сценариям любого сервера (если они знают имя теневой посылки).Отсутствие имени сервера означает разрешение чтения теневой посылки сценариям любого сервера (если они знают имя теневой посылки).

36 Объект Response. Приведем пример записи теневой посылки:Приведем пример записи теневой посылки: Response.Cookies(«visit»)(«Value ) = dataResponse.Cookies(«visit»)(«Value ) = data Response.Cookies(«visit»).Expires = Date + 365Response.Cookies(«visit»).Expires = Date Response.Cookies(«visit»).Path= » / «Response.Cookies(«visit»).Path= » / » Response.Cookies(«visit»).Domain= Request.ServerVariables(SERVER_N AME )Response.Cookies(«visit»).Domain= Request.ServerVariables(SERVER_N AME )

37 Объект Server. Объект Server (сервер) содержит функции, никак не связаны между собой.Объект Server (сервер) содержит функции, никак не связаны между собой. С амая важная функци я объекта Server это метод CreateObject, который создает экземпляр компонента ActiveX.С амая важная функци я объекта Server это метод CreateObject, который создает экземпляр компонента ActiveX. Аргументом метода CreateObject служит Prog >

38 Объект Server. Следующая строчка показывает, как при помощи CreateObject создать экземпляр компонента с Prog >

Asp представление об active server pages

Active Server Pages — Developer(s) Microsoft Stable release 3.0 (no further versions planned) Type Web application framework License Proprietary … Wikipedia

Active server pages — Pour les articles homonymes, voir ASP. Active Server Pages (ASP) est une technologie développée par Microsoft utilisée dans la programmation Web. C est une technologie web dynamique, équivalente et concurrente de PHP. Elle nécessite pour… … Wikipédia en Français

Active Server Pages — альтернативный CGI метод вызова программ на серверной стороне. ASP файл есть html страница со встроенными сценариями, которые запускаются сервером после получения URL этой html страницы. ASP файлы способны выполнять веб серверы компании Microsoft … Финансовый словарь

Active Server Pages — (ASP) es una tecnología del lado serv >Enciclopedia Universal

Active Server Pages — [Abk. ASP, dt. »aktive Seiten auf dem Server«], eine von Microsoft als Alternative zu CGI entwickelte Webtechnologie, die auf Server Seite eingesetzt wird, um interaktive und dynamische Webseiten problemlos erstellen zu können. Dies bedeutet,… … Universal-Lexikon

Active Server Pages — (ASP) ist eine von Microsoft entwickelte SSI Nachfolgetechnologie, die mit Einsatz einer Skriptsprache wie PHP, VBScript, Perl oder JScript serverseitig Webseiten erzeugt. ASP wurde ursprünglich nur vom Webserver Internet Information Services… … Deutsch Wikipedia

Active Server Pages — ASP Desarrollador Microsoft Información general Última versión estable 3.0 (desarrollo abandonado) Género … Wikipedia Español

Active Server Pages — Pour les articles homonymes, voir ASP. Active Server Pages (ASP) est un ensemble de logiciels développés par Microsoft et utilisés dans la programmation Web. C est une suite de logiciels destinée à créer des sites web dynamiques. Elle nécessite… … Wikipédia en Français

Active Server Pages — Abbreviated ASP. In Microsoft Internet Information Server, a script interpreter and execution environment that supports VBScript and JavaScript and is compatible with other scripting languages such as Perl, REXX, Tcl, and Python through add … Dictionary of networking

Добавление динамического контента в представление Razor

Главная цель представлений — визуализировать компоненты доменной модели как компоненты пользовательского интерфейса. Для этого нужно уметь добавлять в представления динамический контент. Динамический контент генерируется во время выполнения и может быть разным для разных запросов. Это его отличие от статического контента, такого как HTML, который вы создаете при написании приложения и который остается одинаковым для всех запросов. Динамический контент можно добавить в представления несколькими способами, которые описаны в таблице 18-2.

Таблица 18-2: Способы добавления динамического контента в представления

Примечание.
Способ Используется для
Код Используется для создания небольших, независимых частей логики представления, например, операторы if или foreach . Это основной способ создания динамического контента в представлении, и на нем основаны некоторые другие подходы. Мы рассмотрели его в главе 5 и уже использовали во многих примерах в других главах.
Вспомогательные методы HTML Используются для создания одного элемента HTML или небольшой коллекции элементов, обычно на основании данных модели представления или объекта ViewData . Можно использовать встроенные вспомогательные методы MVC Framework, можно также создавать свои собственные. Вспомогательные методы HTML рассматриваются в главе 19.
Секции Используются для разбиения контента на блоки, которые будут вставлены в макет в определенных местах.
Частичные представления Используются для включения подсекции разметки в несколько представлений. Частичные представления могут содержать код, вспомогательные методы HTML и ссылки на другие частичные представления. Частичные представления не могут вызывать методы действий, поэтому их нельзя использовать для выполнения бизнес-логики.
Дочерние действия Используются для создания повторно используемых элементов управления UI и виджетов, в которых необходима бизнес-логика. Дочернее действие вызывает метод действия, визуализирует представление и внедряет результат в поток ответа.

Первые два способа рассматриваются в других главах этой книги, а три последних мы опишем в последующих разделах.

Используем секции

Движок Razor поддерживает концепцию секций, которые позволяют выделять различные области в макете. Секции Razor позволяют разбивать представление на части и контролировать то, где они внедряются в макет. Чтобы продемонстрировать работу секций, мы отредактировали файл /Views/Home/Index.cshtml , как показано в листинге 18-16.

Листинг 18-16: Определяем секцию в представлении

Секции определяются с помощью тега Razor @ , за которым следует имя секции. В нашем примере их две — Header и Footer . Их содержание представляет собой обычную смесь разметки HTML и тегов Razor.

Чтобы указать, где в макете должны отображаться секции, используется вспомогательный метод @RenderSection . В листинге 18-17 показаны изменения, которые мы внесли в файл

Движок представлений все еще использует наши пользовательские адреса поиска, что означает, что макеты находятся в папке /Views/Shared , а представления — в /Views/Common .

Листинг 18-17: Используем секции в макете

Когда Razor анализирует макет, он заменяет вспомогательный метод RenderSection на содержимое секции представления с указанным именем. Те части представления, которые не содержатся в секциях, вставляются в макет с помощью вспомогательного метода RenderBody .

Чтобы увидеть работу секций, запустите приложение, как показано на рисунке 18-6. Мы добавили некоторые базовые стили CSS, чтобы было понятно, какие из выведенных секций принадлежат представлению и какие — макету. Результат выглядит незамысловато, но он демонстрирует, как можно внедрить части контента представления в макет в заданной последовательности.

Рисунок 18-6: Используем секции в представлении, чтобы внедрить контент в макет

В представлении можно определить только те секции, на которые есть ссылки в макете. При попытке определить в представлении секции, для которых нет соответствующего вызова вспомогательного метода @RenderSection в макете, MVC Framework выбросит исключение.

Смешивание секций с остальным кодом представления – нестандартный подход. По соглашению секции определяются либо в начале, либо в конце представления, чтобы легче было увидеть, какие области контента будет рассматриваться как секции и будут захвачены вспомогательным методом RenderBody . Мы часто используем и другой подход, согласно которому представление должно содержать только секции, тело представления также заключается в секцию, как показано в листинге 18-18.

Листинг 18-18: Определяем представление с помощью секций Razor

Мы считаем, что такой подход позволяет создавать более понятные представления и снижает вероятность того, что RenderBody захватит посторонний контент. Чтобы его применить, мы должны заменить вызов вспомогательного метода RenderBody на RenderSection(«Body») , как показано в листинге 18-19.

Листинг 18-19: Определяем представление с помощью RenderSection(«Body»)

Тестирование секций

Вы можете проверить, определена ли в представлении какая-либо секция из макета. Это делается для того, чтобы предоставить контент по умолчанию для этой секции, если она отсутствует в представлении и мы по каким-то причинам не хотим ее там определять. Мы изменили файл _Layout.cshtml , чтобы проверить, определена ли в нем секция Footer , как показано в листинге 18-20.

Листинг 18-20: Проверяем наличие секции Footer в представлении

Вспомогательный метод IsSectionDefined возвращает true для заданного имени секции, если в текущем представлении определена эта секция. В этом примере с помощью вспомогательного метода мы выясняем, нужно ли предоставлять какой-либо контент по умолчанию, если окажется, что в представлении не определена секция Footer .

Визуализируем дополнительные секции

По умолчанию в представлении должны быть определены все секции, к которым в макете имеются вызовы RenderSection . Если секции отсутствуют, MVC Framework покажет пользователю исключение. Чтобы продемонстрировать это, мы добавили в файл _Layout.cshtml новый вызов RenderSection к секции под названием scripts , как показано в листинге 18-21 (это секция, которую Visual Studio добавляет в макет по умолчанию для проектов на шаблоне Basic , но которую мы удалили в самом начале).

Листинг 18-21: Добавляем в макет вызов RenderSection , для которого нет соответствующей секции в представлении

Если мы запустим приложение и движок Razor попытается визуализировать макет и представление, то увидим ошибку, показанную на рисунке 18-7.

Рисунок 18-7: Ошибка, которая появляется в случае отсутствия секции

Вы можете использовать метод IsSectionDefined , чтобы избежать вызовов RenderSection к секциям, не определенным в представлении, но для этого есть более элегантный подход: передавать дополнительное значение false в метод RenderSection , как показано в листинге 18-22.

Листинг 18-22: Делаем секцию необязательной

Это делает секцию необязательной: если она определена в представлении, ее содержание будет вставлено в результат, если нет – мы не получим исключение.

Используем частичные представления

В приложениях мы часто используем одни и те же фрагменты тегов Razor и HTML-разметки в нескольких представлениях. Чтобы не дублировать контент, можно использовать частичные представления. Они представляют собой отдельные файлы, которые содержат фрагменты кода с тегами и разметкой и могут быть включены в другие представления. В этом разделе мы покажем вам, как создавать и использовать частичные представления, объясним принципы их работы и продемонстрируем способы передачи в них данных представлений.

Создаем частичное представление

Для начала создадим частичное представление под названием MyPartial . Для этого кликните правой кнопкой мыши по папке /Views/Shared , выберите из контекстного меню Add — View и отметьте флажком опцию Create as Partial View , как показано на рисунке 18-8.

Рисунок 18-8: Создаем частичное представление

Сразу после создания оно будет пустым, и мы добавим в него содержимое, показанное в листинге 18-23.

Листинг 18-23: Файл MyPartial.cshtml

Мы хотим продемонстрировать, как можно смешивать HTML-разметку и теги Razor, поэтому мы определили в нем простое сообщение и вызов к вспомогательному методу ActionLink .

Чтобы использовать частичное представление, нужно вызвать вспомогательный метод HTML Partial из другого представления. Для демонстрации мы внесли изменения в файл

/Views/Common/List.cshtml , как показано в листинге 18-24.

Листинг 18-24: Используем частичное представление

Имя файла представления указывается без расширения. Движок представлений будет искать указанное частичное представление по обычным адресам поиска, то есть при визуализации представления для контроллера Home — в папках /Views/Home и /Views/Shared . (Мы установили переменной Layout значение null , так что теперь нам не нужно указывать секции, которые использовались ранее в этой главе.)

Движок представлений Razor ищет частичные представления так же, как и обычные (в папках

/Views/Shared ). Это значит, что можно создавать специализированные версии частичных представлений для конкретных контроллеров и переопределять частичные представления с одинаковыми именами в папке Shared . Хотя последняя функция может показаться странной, она очень удобна, потому что чаще всего частичные представления используются для визуализации контента в макете.

Вы можете увидеть вывод частичного представления, запустив приложение и перейдя по ссылке /Home/List , как показано на рисунке 18-9.

Рисунок 18-9: Вывод частичного представления

С помощью вызова вспомогательного метода ActionLink в частичном представлении мы получаем из обрабатываемого запроса информацию о контроллере. Это значит, что если мы указываем метод Index , элемент a будет относиться к контроллеру Home , так как именно этот контроллер вызывает визуализацию частичного представления. Если мы используем частичные представления в представлении, которое визуализируется другим контроллером, то ActionLink сгенерирует ссылку на этот контроллер. Мы вернемся к вспомогательным методам HTML в главе 19.

Используем строго типизированные частичные представления

Можно также создать строго типизированное частичное представление, а затем передавать в него объекты моделей представлений, которые оно будет визуализировать. Чтобы это продемонстрировать, мы создали новое строго типизированное частичное представление под названием MyStronglyTypedPartial.cshtml в папке /Views/Shared . Оно создается практически так же, как и обычное частичное представление, только нужно выбрать или ввести с клавиатуры тип для опции Model class , как показано на рисунке 18-10. Мы использовали тип IEnumerable .

Рисунок 18-10: Создаем строго типизированное частичное представление

В листинге 18-25 показаны дополнения в файле частичного представления, который был создан Visual Studio. Изначально он содержит только тег модели @ , который указывает тип модели представления.

Листинг 18-25: Создаем строго типизированное частичное представление

Мы отображаем содержимое объекта модели представления как список HTML с помощью тега Razor @foreach . Чтобы продемонстрировать работу этого частичного представления, мы обновили файл /Views/Common/List.cshtml , как показано в листинге 18-26.

Листинг 18-26: Используем строго типизированное частичное представление

Отличие от предыдущего примера заключается в том, что здесь мы передаем дополнительный аргумент во вспомогательный метод Partial , который определяет объект модели представления. Чтобы увидеть, как работает это строго типизированное частичное представление, запустите приложение и перейдите по ссылке /Home/List , как показано на рисунке 18-11.

Рисунок 18-11: Используем строго типизированное частичное представление

Используем дочерние действия

Дочерние действия – это методы действий, которые вызываются из представления. Они позволяют избежать дублирования логики контроллера, которую необходимо использовать в приложении несколько раз. Дочерние действия так же относятся к действиям, как частичные представления – к представлениям.

Дочерние действия чаще всего используются для отображения какого-либо управляемого данными виджета, который должен появляться на нескольких страницах и содержит данные, не относящиеся к основному действию. Мы их использовали в примере приложения SportsStore, когда необходимо было во все страницы включить управляемое данными меню навигации, без необходимости поставлять данные о категориях навигации непосредственно от каждого действия метода. Эти данные поставлялись независимо дочерним действием.

Создаем дочернее действие

Любое действие можно использовать как дочернее. Чтобы продемонстрировать работу дочерних действий, мы добавили новый метод действия в контроллер Home , как показано в листинге 18-27.

Листинг 18-27: Добавляем дочернее действие в контроллер Home

Наш метод действия называется Time и визуализирует частичное представление, вызывая метод PartialView (о котором мы рассказывали в главе 15). Атрибут ChildActionOnly гарантирует, что метод действия может быть вызван только как дочернее действие из представления. Хотя метод действия может использоваться как дочерний и без этого атрибута, мы всегда применяем ChildActionOnly , чтобы данный метод невозможно было вызвать на запрос пользователя.

После определения метода действия нам нужно создать частичное представление, которое он будет визуализировать. Дочерние действия обычно связываются с частичными представлениями, хотя это и необязательно. В листинге 18-28 показано представление /Views/Home/Time.cshtml , которое мы создали для работы с нашим дочерним действием. Это строго типизированное частичное представление, моделью которого является объект DateTime .

Листинг 18-28: Частичное представление для дочернего действия

Визуализируем дочернее действие

Дочернее действие вызывается вспомогательным методом Html.Action . После данного вызова выполняется метод действия, обрабатывается ViewResult , и вывод внедряется в ответ клиенту. В листинге 18-29 показаны изменения, которые мы внесли в файл /Views/Common/List.cshtml , чтобы визуализировать дочернее действие.

Листинг 18-29: Вызов дочернего действия из представления List

Вы можете увидеть вывод дочернего действия, запустив приложение и снова перейдя по ссылке /Home/List , как показано на рисунке 18-12.

Рисунок 18-12: Используем дочернее действие

Вспомогательному методу Action , который был вызван в листинге 18-29, мы передали параметр с именем вызываемого метода действия. MVC Framework будет искать метод действия в контроллере, который обрабатывает текущий запрос. Чтобы вызвать метод действия из другого контроллера, передайте в параметр его имя, например:

В методы действий можно передавать параметры с помощью анонимно типизированных объектов, свойства которых соответствуют именам параметров дочернего метода действия. Так, например, следующее дочернее действие:

можно вызвать из представления следующим образом:

Образовательный блог — всё для учебы

1) Общие сведения об ASP
ASP (Active Server Pages) – это технология программирования, позволяющая создавать на Web-сервере (с IIS, 1997 г.) динамические интерактивные Web-страницы. ASP представляет собой файлы с расширением *.Asp, содержащие смесь кода HTML, кода сценариев на языке VBScript или JavaScript, средств доступа к БД (ADO), управления внешними COM-объектами и внутренних объектов ASP. Эта технология впервые была реализована в Web-сервере IIS фирмы Microsoft и фактически является интерпретируемым вариантом ISAPI-расширения сервера.

2) Встроенные объекты
ASP включает семь встроенных (не требующих создания и инициализации) объектов, используемых для пересылки HTML-страниц и данных браузеру, извлечения данных, обмена данными с сервером и т.д. среди них:
Response – пересылает данные клиенту
Request – обрабатывает данные, поступающие с запросом от клиента.
Server – обеспечивает взаимодействие с сервером.
Application – кэширует данные о приложении.
Session – кэширует данные о браузере.
ObjectContext – запускает транзакции и управляет их выполнением.
ASPError – поддерживает работу с ошибками.

3) Особенности ASP
Помимо встроенных, в комплект ASP входит ряд устанавливаемых объектов, часть из которых бывает полезна, а часть незаменима. Так COM объект Dictionary незаменимый.

В отличие от CGI, ASP-сценарий выполняется как внутренний процесс сервера, кроме того, он многопоточен и оптимизирован для работы с большим количеством пользователей. ASP-сценарий начинает выполняться после того, как браузер запросит файл с расширением *.Asp с Web-сервера. Web-сервер посылает вызов встроенному в IIS ASP-механизму обработки (..\System\InetSrv\Asp.Dll), который считывает сценарий и выполняет все встретившиеся команды. В результате генерируется HTML-страница, которая посылается браузеру.

Для того, чтобы с помощью ASP сделать что-либо серьезное на Web-сервере, необходимо создать COM-объекты и использовать их службы (методы). Компоненты ASP Должны использовать модель потоков STA – каждый объект выполняется в контексте собственного потока и защищен от конкурирующих потоков.

4) Доступ к встроенным объектам
Для доступа от создаваемых COM-объектов ко встроенным необходимо использовать интерфейсы:
a) С помощью функции GetObjectContext получить указатель на интерфейс IObjectContext;
b) С помощью указателя следует получить указатель на интерфейс IGetContextProperties;
c) Вызвав метод GetProperties() и передав ему имя встроенного объекта, например, Request или Response, и вариантную переменную, можно получить через нее указатель на IDispatch интерфейс запрашиваемого объекта;
d) Далее можно вызывать методы встроенного объекта.

5) Недостатки ASP
• Программы ASP не компилируются, а интерпретируются. Следовательно, они исполняются медленнее компилируемых.
• ASP не имеет развитых средств определения типов. Все переменные имеют тип Variant (16 байт). Это удобно, но не способствует повышению скорости работы.
• Внешние файлы приходится включать (include) при каждом обращении.
• ASP трактует все объектные (object) переменные как объекты с поздним связыванием. При каждом обращении к свойству или методу запрашиваются все данные об объекте, что увеличивает время отклика.

6) Пример реализации ASP
— Необходимые настройки и установки
На сервере необходимо установить IIS (каталог WEB5), ADO, ODBC (System DSN – SLS), InterBase (FireBird). В качестве источника данных воспользуемся БД Sales.Gdb.

— Структура программы доступа к БД

HTML-заголовок:

Демонстрация ASP

Подключение к БД



Подключение к БД:

HTML-подвал:

Цикл считывания данных:


Fields.Count-1 %>


Fields.Count-1 %>

— Работа с программой
Для запуска программы следует в браузере набрать: http://localhost/web5/sales/php

7) ASP клоны и аналоги
Chili!Soft
Chili!Soft, продукт одноименной компании, — достаточно гибкий клон ASP, способный работать на разнообразном оборудовании, операционных системах и Web-серверах. Считается, что Chili!Soft и ASP совместимы на 90%.

Java Server Pages
Java Server Pages (JSP) – технология, напоминающая ASP, но в которой используется только язык Java в сочетании с HTML, для поддержки динамического формирования страниц на любой платформе с поддержкой Java. Аналогом COM-объектов являются объекты JavaBeans.

Apache::ASP
Apache::ASP на основе PerlScript от Apache Perl International Project работает на множестве операционных систем, но только с Web-сервером Apache.

PHP
Похожими возможностями обладает язык с открытой лицензией PHP. Правда технология PHP базируется на классических библиотеках объектных модулей, а не на использовании модели компонентного объекта COM и элементов управления ActiveX.

Учим ASP (вопросы, помощь, советы.)

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

P.S.1: Не думайте, пожалуйста, что есть что то элементарное, и давайте любые советы.

P.S.2: Убедительная просьба пальцы не гнуть и понтов не кидать. Не знаете, что сказать, не говорите.

23.09.2007, 16:12

Советы по разработке и отладке ASP сайта
Мне нужно разработать сайт с ASP, подскажить в чём лучше вести разработку и отладку, то есть.

Вопросы по ASP.NET 2.0
Что то мне подсказывает что это не есть стандартный элемент управления ASP.NET подробности здесь.

Вопросы по работе ASP&Exel
Такое вот дело, есть документ Exel с несколькими листами(Лист 1, Лист 2, Лист 3). С помощью ASP: .

[ASP.NET] IHttpModule, IHttpFilter вопросы, реализация.
Задача есть некая CMS 1. все страницы генерируються динамически. то есть в проекте одна АСПХ.

Нужна помощь по ASP и JS
Есть дата, например 21.11.2005 Нужно преобразовать дату в вид, 20051121, в ASP и JavaScript.

23.09.2007, 17:21 2
23.09.2007, 17:31 [ТС] 3
23.09.2007, 17:35 [ТС] 4
23.09.2007, 17:35
23.09.2007, 18:07 5
23.09.2007, 18:10 [ТС] 6
23.09.2007, 18:29 [ТС] 7

Господа. что я делаю неправильно, если не секрет.
(Я пытаюсь присвоить в text2 name=knopka )

PS: да, я знаю, что не умею программировать на asp

23.09.2007, 18:46 8

ну я же говорил, что ASP выполняется на сервере, а кнопка ‘рисуется’ в браузере, т.е. на клиенте. Для клиента нужно писать клиетские скрипты, клиентские скрипты лучше писать на javascript, т.к. его и Netscape понимает, в данном случае правильно так:

небольшое пояснение: объект this — это объект, который породил событие onclick, в данном случае это кнопка

23.09.2007, 18:56 [ТС] 9
23.09.2007, 19:01 10
23.09.2007, 19:23 11
23.09.2007, 21:32 12
24.09.2007, 04:23 13

Sergik, ya s toboi ne soglawus’ po povodu vstroennyh ob’ektov v InterDev. Vopros dage ne v tom, 4to oni prosto oblegjaut tebe zhizn’, no i dajut tebe mnogo interesnyh vozmognostei. Ya dolgo vybiral kakoi Tool lu4we ispol’zovat’ dlya ASP development, Macromedia UltraDev ili MS InterDev. Mne o4en’ nravitsa v UltraDev rabota s tabli4kami, lubuju HTML strani4ku ty mogew ispol’zovat’ kak template, no naverno UltraDev bolwe udarili na mownyi HTML editor. Kogda v InterDev dage elementarnuju tabli4ky modoficirovat’, vyglyadit ochen’ po voennomu.
No naprimer, v InterDev, DataEnviroment o4en’ pomogaet razrabatyvat’ Query, to 4to priwlos’ by delat’ chasami, ili gonyat’ v SQL Severe ili Accesse, on vse delaet za tebya, i pri4em eto plavno bez golovnyakov inegriruetsa v ASP file.
Nu voobwem eto na lubitelya, samyi glavnyi plus Interdeva eto DTC controls, kak eto nazyvaetsa SOMy, kotorye v zavisimosti ot zadannoi objektnoi modeli, pozvolajut tebe dage s knopo4koi rabotat’ na server side. Plus s ispol’zovaniem PageObject, ty vidiw strani4ku kak object. Znaew, ya smotru na eto delo tak, v principe mogno ASP scriptik napisat’ v obyknovennom text editor, no esli est’ kakie-to tools, kotorye tebe uprowajut zhizn’, usrorajut process razrabotki, naverno est’ kakoi-to smysl v ih ispol’zovanii.

Po povodu knigek, www.wrox.com, i pomoemu s ih site mogno slit’ primery iz knig.

24.09.2007, 09:18 14

Если ты про это

то здесь всё правильно.

Для уверенности можешь написать так:
VALUE=’Скопировать’ OnClick=’fill(document.forma.knopka.name)’>

Если насчет книжек, то книжками по ASP я не пользуюсь: дорогое
удовольствие, а начальство считает, что с нас и интернета достаточно.
Лучшая книжка — MSDN

Насчет сайтов:
www.aspzone.com — можно найти любой компонент или исходник.
www.activeserverpages.ru — хороший форум
www.aspcode.net — наиболее полное описание ASP хостингов (из тех, что
встречал)

Насчет редакторов: интегрированное ипользование HomeSite + Dreamweaver
UltraDev решает все проблемы. Но если я работаю с компонентами,
подключаю MS Interdev.

Как вызвать метод контроллера без показа представления в ASP.NET MVC?

Хочу вызвать метод (MergeReport) контроллера (Home) для совершения некой фоновой операции. Кроме фоновой операции больше ничего не должно происходить. Вот как это у меня выглядит кнопка во view:

Сам метод во HomeController.cs:

После нажатия на кнопку Create тело MergeReport выполняется, но при этом идет попытка показать представление /Home/MergeReport. Но мне это не нужно. Необходимо в теле метода MergeReport «фоново» поработать с другими объектами из других классов.

1 ответ 1

Поскольку на событии «onclick» у вас используется location.href, то автоматически посылается http-get запрос и в результате браузер ожидает html-ответ. Чтобы совершить фоновую операцию необходимо использовать асинхронные запросы. Например, использовать Ajax-запрос из Java-script либо средства Microsoft.ajax.

Самый простой пример jquery ajax. В контроллере:

Илон Маск рекомендует:  Защищенный режим работы процессора. Режимы адресации, дескрипторы
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL