Устранение неполадок при отрисовке в представлении конструирования
Обновлен: Ноябрь 2007
При попытке открыть в конструкторе страниц Web Forms файл, который не может быть правильно отображен в конструкторе, возникает несколько стандартных проблем. Проблемы с отрисовкой в представлении конструирования возникают при работе с файлом, который был изначально создан как страница с выделенным кодом Web Forms вне Visual Studio. Тем не менее, эти ошибки могут произойти по ряду других причин. Чаще всего проблема заключается в атрибутах директивы @ Page на странице Web Forms или в директиве @ Control в пользовательском элементе управления Web Forms.
![]() |
---|
Конструктор страниц Web Forms — это зарегистрированный редактор для файлов с расширением, которое совпадает с расширением файла, с которым ведется работа. Если вы не желаете использовать конструктор страниц Web Forms для работы с этим файлом, следует изменить расширение файла. Кроме того, можно щелкнуть файл правой кнопкой мыши в обозревателе решений, выбрать команду Открыть с помощью и выбрать другой редактор. |
Проблемы, связанные с атрибутом Src
Причиной ошибки может быть наличие атрибута Src в директиве @ Page или @ Control. Этот атрибут не поддерживается конструктором страниц Web Forms. Чтобы устранить эту ошибку:
Удалите атрибут Src. Вместо него добавьте:
Атрибут CodeBehind содержит ссылку на имя файла кода программной части в проекте.
Атрибут Inherits содержит ссылку на имя класса, представленного в файле кода программной части. (Этот класс должен наследоваться от класса System.Web.UI.Page.)
Примечание.
Если файл и класс кода программной части не существуют, их можно создать с помощью конструктора страниц Web Forms. После удаления атрибута Src присвойте атрибуту Inherits значение «» (пустая строка), а атрибуту CodeBehind присвойте значение, равное имени файла кода программной части, который необходимо создать (formname.aspx.vb или formname.aspx.cs). Сохраните файл и закройте его. В обозревателе решений щелкните правой кнопкой мыши ASPX-файл и выберите команду Просмотреть код. Когда файл кода программной части будет сохранен, конструктор создаст соответствующий файл класса. Снова откройте файл. Выполните любое действие, которое порождает код в файле кода программной части (например, добавьте элемент управления или двойным щелчком мыши по элементу управления создайте обработчик событий), и сохраните файл. Конструктор соответствующим образом задаст атрибут Inherits страницы Web Forms.
Кроме того, можно удалить атрибуты Src, CodeBehind и Inherits и рассматривать данный файл как страницу Web Forms, состоящую из одного файла. Дополнительные сведения см. в разделе Работа в Visual Studio .NET со страницами Web Forms, состоящими из одного файла.
Проблемы, связанные с атрибутом CodeBehind
Атрибут CodeBehind в директиве @ Page или @ Control ссылается на имя файла, который содержит класс для данной страницы. Например, если в Visual Studio создать страницу WebForm1, атрибут CodeBehind будет указывать на файл WebForm1.aspx.vb или WebForm1.aspx.cs.
Атрибут CodeBehind используется только в режиме разработки; он указывает конструктору Web Forms, где найти класс данной страницы, чтобы конструктор мог создать ее рабочий экземпляр.
С атрибутом CodeBehind могут быть связаны следующие проблемы:
Файл, на который ссылается атрибут, недоступен. Файл не существует или имеет другое имя.
Класс в файле, на который ссылается атрибут, наследуется от базового класса, который не связан с проектом. Обычно класс для создаваемой страницы Web Forms наследуется от класса System.Web.UI.Page, но если ведется работа с пользовательским элементом управления или со страницей Web Forms для другой платформы, такой как мобильное устройство, базовый класс может быть другим.
Класс в файле, на который ссылается атрибут, является наследником базового класса в проекте, который не был скомпилирован.
Проблемы, связанные с атрибутом Inherits
Атрибут Inherits в директиве @ Page или @ Control ссылается на имя класса (а не файла), от которого во время выполнения наследуется страница. Подробные сведения о модели наследования для страниц Web Forms см. в разделе Модель кода Web Forms.
Проблемы с атрибутом Inherits возникают только если не существует атрибут CodeBehind. Такая ситуация возможна, например, для страницы Web Forms, состоящей из одного файла. Только если атрибут CodeBehind не существует, конструктор использует класс, на который ссылается атрибут Inherits, для создания экземпляра страницы в режиме разработки.
![]() |
---|
Если атрибут CodeBehind существует, конструктор проигнорирует атрибут Inherits, даже если атрибут Inherits указывает на недоступный класс. В этом случае работать со страницей в конструкторе можно, но она не будет выполняться. |
В связи с атрибутом Inherits чаще всего возникает следующая проблема: он указывает на класс, который недоступен в данном проекте или в сборке, на которую есть ссылка.