Страница дизайнера не обновляется при удалении элементов управления в форме - PullRequest
1 голос
/ 01 февраля 2009

(Было: код ASP.Net не нашел элементов управления на веб-странице)

Я использую VS 2008.

Я не знаю, какой секретный переключатель мне нужно перевернуть, или какой провод отключения, по которому я случайно споткнулся, но последняя форма, которую я создал в своем проекте, ведет себя очень серьезно: код, очевидно, не может найти ни одного из элементов управления что я настроил в форме. Файл codebehind существует, но он генерирует ошибки компиляции при любых ссылках на элементы управления, объявленные в форме.

Наиболее очевидная подсказка в том, что в разметке формы первая строка:

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="UserSignature.aspx.vb"
  Inherits="EEI_App.UserSignature" %>

и Intellisense подчеркнул всю первую строку, давая мне какое-то глупое сообщение «не удалось загрузить файл или сборку», что он не может найти полностью несвязанную DLL, которая находится в моей папке приложения, явно и явно, со ссылкой правильно настроен.

Сначала Intellisense только подчеркивал настройку «CodeBehind», говоря, что «файл UserSignature.aspx.vb не найден». - затем по какой-то причине это началось с этого другого сообщения о DLL, а также.

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

Я попытался открыть и закрыть Visual Studio; Я попытался перезагрузиться - ничего не имеет значения. Каждая новая форма, которую я добавляю в свой проект, не может связываться со своим собственным кодом - с момента создания нового файла разметка выдает ошибку «Файл 'NewFile.aspx.vb' не найден»!

Есть идеи?

Спасибо


Я думаю, что я подхожу к проблеме. @ MatthewMartin, ты определенно самый теплый.

Похоже, что form.aspx.designer.vb по какой-то причине не обновляется, когда я перетаскиваю элементы управления на форму. Я до сих пор не знаю, почему это так, но, по крайней мере, нам становится теплее!


Хорошо, теперь это определенно проблема, и я переименовал вопрос, чтобы отразить это: фундаментальная проблема заключается в том, что моя форма form.aspx.designer.vb не обновляется, когда я перетаскиваю элементы управления на форму. Есть идеи хотя бы для обхода проблемы - как заставить дизайнер обновиться?

Спасибо!

Ответы [ 6 ]

2 голосов
/ 01 февраля 2009

Вы можете принудительно восстановить страницу aspx.vb.designer, удалив текст элементов управления и немедленно вставив его на место.

Также убедитесь, что код позади страницы имеет класс UserSignature и пространство имен EDI_App. Также в зависимости от того, используете ли вы веб-приложение / веб-проект, пространство имен по умолчанию может отличаться. Вы можете проверить, создав новый файл и посмотрев, какой шаблон используется по умолчанию между директивой страницы и объявлением имени класса в коде позади.

Наконец, если это было преобразованное приложение 1.1, или приложение 2.0, где код не говорит

частичный класс

, тогда вы будете нести ответственность за объявление всех контрольных ссылок.

1 голос
/ 01 февраля 2009

У меня была точно такая же проблема в пятницу. Оказывается, что VS2008 не достаточно умен (используя VSS в качестве управления исходным кодом - я знаю, но это то, что есть у клиента), чтобы в некоторых случаях проверить одновременно aspx, aspx.vb и designer.vb. В моем случае я получал всевозможные странные поведения, и, конечно, Visual Studio, пытаясь быть «полезным», никак не мог проверить файл designer.vb.

Решение состоит в том, чтобы вернуть страницу обратно, затем удалить элемент управления на странице и сохранить (или удалить элемент управления - любое действие, которое приведет к обновлению designer.vb.)

1 голос
/ 01 февраля 2009

ОК, я нашел свой ответ:

Передайте весь рабочий код в систему управления версиями, удалите дерево разработки и получите последнюю версию.

Внезапно все снова работает. И это также решило мою другую сегодняшнюю проблему .

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

1 голос
/ 01 февраля 2009

Возможно ли, что вы потеряли ссылку на System.Web (или другую важную DLL, может быть, ту, которую вы упомянули)?
Обычно я сталкиваюсь с подобными проблемами, когда пытаюсь загрузить страницу или пользовательский элемент управления в dll-решение. Фактически, дважды нам приходилось загружать полученные файлы в новый проект, и это решало проблему.

1 голос
/ 01 февраля 2009

Попробуйте это:

<%@ Page Language="vb" AutoEventWireup="false" CodeFile="UserSignature.aspx.vb" Inherits="EEI_App.UserSignature" %>
1 голос
/ 01 февраля 2009

Вы переименовали его? Изменено пространство имен базы / проекта? В частности, посмотрите на EEI_App.UserSignature - это правильное имя?

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

...