Как заставить Visual Studio заново создать файлы .designer для файлов aspx / ascx?

395

Иногда, когда я редактирую страницу или управляю, файлы .designer перестают обновляться новыми элементами управления, которые я помещаю на страницу. Я не уверен, что является причиной этого, но мне интересно, есть ли способ заставить Visual Studio заново создать файл .designer. Я использую Visual Studio 2008

РЕДАКТИРОВАТЬ: Извините, я должен был отметить, что я уже пытался:

  • Закрытие и повторное открытие всех файлов и Visual Studio
  • Внесение изменений в элемент управления runat = "server" на странице
  • Удаление и повторное добавление директивы страницы
Glenn Slaven
источник
57
Смешно ли, что в 2012 году в Visual Studio все еще не было пункта контекстного меню для восстановления файлов дизайнеров из исходных файлов? Это похоже на неспособность восстановить поврежденную DLL. Я не понимаю .. Особенно с внешним управлением исходными текстами и внешними редакторами вы оставляете калекой Visual Studio. Пустая трата денег, если вы спросите меня. Я на самом деле пытаюсь восстановить ресурсы дизайнеров файлов. Мне удалось отредактировать его, но это произошло из-за неясности ... Ауг !!! 1
bambams
3
@ bamccaig, если бы у меня была копейка за каждую странную «черту», ​​подобную этой, я был бы богаче, чем Билл Гейтс. Если вы считаете, что это плохо, посмотрите, где Outlook Express хранит свои почтовые данные. Он находится глубоко в папке пользователя под загадочным именем папки, которое по умолчанию скрыто.
ATL_DEV
13
Есть ли решение для VS 2015?
Антон
См. Связанные с stackoverflow.com/questions/6508252/… для других попыток.
Goodeye
2
Не постоянное исправление, но это восстанавливает контрольные ссылки в файле .cs: 1. Откройте связанный файл .aspx; 2. Удалите одиночный «>» в ​​конце <%@ Pageдирективной строки; 3. Подождите секунду или две; 4. Поставьте «>» обратно. 5. Переключитесь на файл .cs, и вы увидите, что теперь он не содержит ошибок контрольных ссылок. Я делал это целую вечность, работает каждый раз, в каждой версии VS.
ингридиент_15939

Ответы:

368

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

В VS2013-15 есть команда « Преобразовать в веб-приложение» в меню « Проект» . До VS2013 эта опция была доступна в контекстном меню правой кнопкой мыши для файлов (c / p) x. Когда это будет сделано, вы увидите, что теперь у вас есть файл * .Designer.cs, и ваши элементы управления в Design HTML будут доступны для вашего элемента управления.

PS: Это не следует делать в режиме отладки, так как не все «перекомпилируется» при отладке.

Некоторые люди также сообщали об успехе (создавая резервную копию вашего файла .designer.cs и затем) удаляя файл .designer.cs. Повторно создайте пустой файл с тем же именем.

Есть много комментариев к этому ответу, которые добавляют советы о том, как лучше всего заново создать файл designer.cs.

Espo
источник
1
Это сработало только после закрытия каждого экземпляра (даже с совершенно разными решениями) VS2008
Кевин,
11
Я обнаружил, что переход от режима отладки к режиму выпуска помогает мне в этом, Спасибо
Крис
5
Просто хотел сказать, что у меня была та же ошибка, и я попробовал все на этой странице, но ничего не получалось. Выяснилось, что мне не хватает тега ">" в div с runat = "server". Запуск ВС-2008.
Ber53rker
10
Чтобы отобразить «Преобразовать в веб-приложение», сначала необходимо удалить файл Designer.cs ПРАВЫМ, щелкнув файл aspx в обозревателе решений и выбрав «Удалить». Это работало для меня в VS 2010.
DeveloperDan
43
VS2013 имеет Преобразовать в веб-приложение в меню Проект. Просто больше нет в контекстном меню.
Деннис Бертон
95

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

Хитрая!

Гленн Славен
источник
3
У меня это тоже сработало. Не идеально. Понятия не имею, почему оригинальный файл desginer перестал корректно обновляться.
Iain Holder
3
Это не сработало для меня. Теперь у меня есть пустой файл, и весь код не работает !!! Перезагрузка ...
DiningPhilanderer
7
Это сработало для меня. Я удостоверился, что удалил оригинал, создал новый файл designer.cs с тем же именем, закрыл новый файл, слегка изменил файл .as (p / c) x для принудительного сохранения, тогда все было хорошо.
TJB
9
если у вас будет ошибка компиляции вида, она не вернется. Как правило, именно поэтому он перестает восстанавливаться в первую очередь. Вам нужно включить просмотр компиляции, чтобы увидеть его, что не совсем понятно.
DevelopingChris
1
Я также должен был включить пустой файл в свой проект.
JP Hellemons
78

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

  • Выберите весь передний код (html-разметка и т. Д.) В редакторе файла aspx / ascx.
  • Резать.
  • Сохранить.
  • Вставить.
  • Сохранить.

Рекомпилированные.

Руван Фернандо
источник
1
Я думаю, что удаление одного элемента управления и его повторное добавление имеет тот же эффект.
Крис
Я сделал это, и это сработало для меня. Тем не менее, мне пришлось создать пустой файл с именем, <name>.aspx.designer.vbчтобы заставить его работать
Тахир Хассан
64

Недавно я увидел, что у меня такая же проблема. Visual Studio 2010 отказывается обновлять файл конструктора.

Оказывается, VS не изменяет файл конструктора для страницы, которая использует CodeFile (запуск страниц) вместо CodeBehind (DLL). Это верно независимо от того, сколько раз вы закрываете VS, перезагружаете проект, воссоздаете элементы управления или изменяете файл. Ничто не побудит VS переродить дизайнера. Как будто он не создает файл конструктора для страниц CodeFile, но требует его наличия.

Я изменил его на CodeBehind и сохранил страницу. Файл конструктора обновился сразу. Тогда я просто изменил его обратно, и все было по-прежнему золотым. Такое поведение кажется новым для VS 2010 / .NET 4.0, поскольку VS 2008 по умолчанию не страдает от этого.

Это эта часть:

<%@ Page Language="vb" AutoEventWireup="false" CodeFile="YourPage.aspx.vb" Inherits="YourPageClass" %>

Измените CodeFile на CodeBehind, сохраните, а затем верните.

Geoff
источник
Поздно к этой теме. Ни один из ответов, описанных выше, не вынуждает элементы управления быть перечисленными в * .aspx.designer.cs. Я надеялся, что это произойдет, но он все еще не заставляет элементы управления быть объявленными в файле * .aspx.designer.cs. Я использую VS 2010 Pro SP1. Я пытаюсь заставить это работать с любыми файлами по умолчанию, которые IDE генерирует в / Account, такими как ChangePassword.aspx. Спасибо.
Папаруш
1
Мой был установлен на CodeFile, я изменил на CodeBehind, сохранил, обратно на CodeFile, сохранил, все золотое. Предыдущие попытки исправить это не сделали для меня. VS 2010 Pro
Дан
37

Существует еще одна возможность: в вашем файле .aspx может быть ошибка, из-за которой Visual Studio не может заново создать конструктор.

Если вы переключитесь в режим конструктора, он покажет, что элемент управления не может быть отображен. Исправление элемента управления (в моем случае это была дополнительная кавычка в свойствах) и перекомпиляция должны перезапустить конструктор.

y0mbo
источник
У меня была та же проблема, пользовательский элемент управления имел ошибки, поэтому страницы, использующие пользовательский элемент управления, имели несвязанные ошибки из-за ошибок в пользовательском элементе управления.
Ронен Фестингер
1
По той же причине. У меня был неподдерживаемый атрибут visible = "false", добавленный к кнопке asp. Я удалил его, и дизайнерский код был сгенерирован заново.
chingNotCHing
21

Большинство решений здесь не работают, если вы работаете с Visual Studio 2013 и, возможно, 2012. Microsoft, вероятно, представила некоторые оптимизации, чтобы сделать IDE более быстрой, следовательно, они сократили количество случаев, которые запускают генератор кода. Следующие сценарии, которые раньше работали, больше не работают:

  1. Удалить файл aspx или ascx - больше не проверяет этот случай
  2. Вырезать весь контент и вставить в файл aspx или ascx - больше не работает, никаких изменений в ссылках
  3. Преобразовать в веб-приложение - опция больше не доступна
  4. Произвольное изменение содержимого файла aspx / ascx - больше не работает (см. 2).

Решение удивительно простое, но немного громоздкое. Чтобы запустить генератор кода, измените что-то, что потребует генерации designer.aspx.cs. Изменение содержимого, которое не влияет на код, например, стиль CSS или добавление текста, не вызовет генератор кода. Вы должны изменить ссылочный элемент управления. Вот как это сделать:

В ascx или aspx измените идентификатор элемента управления

<asp:HyperLink ID="MyLink" runat="server" NavigateUrl="~/Default.aspx" Text="Home" />

в

<asp:HyperLink ID="theLINK" runat="server" NavigateUrl="~/Default.aspx" CssClass="tab" Text="Home" />

Перейдите в ascx.cs или aspx.cs и убедитесь, что вы переименовали все ссылки на «MyLink» на «theLINK». Сохраните и сделайте сборку, и вам будет хорошо идти.

ATL_DEV
источник
Очень хороший момент об изменениях в более новой версии Visual Studio. Вместо того, чтобы возиться с идентификатором, как описано выше, мне удалось стереть файл конструктора, затем добавить новый, мягкий элемент управления, такой как <asp: PlaceHolder ID = "Foo" runat = "server />, и затем сохранить его в триггере. регенерация. Тогда, даже если вы забудете удалить его, ничто не повлияет.
Джордан Ригер
8
3. «Преобразовать в веб-приложение» становится доступным в меню «ПРОЕКТ», если выбран соответствующий файл.
WynandB
2
Хм. К сожалению, эта опция недоступна, если это уже веб-приложение.
ATL_DEV
Быстрое изменение состоит в том, чтобы отредактировать часть пространства имен атрибута Inherits =. Это должно отредактировать пространство имен в файле .designer и восстановить все содержимое внутри. Я только что попробовал это с VS2013.3.
Дэвид Рассел
Привет, я обычно пытаюсь использовать предоставленный вами способ, но проблема в том, что другой пользователь не может сгенерировать файл g.cs, пока это может сделать только администратор. Мы используем TFS, с использованием идентификатора пользователя нескольких разработчиков в VS, мы можем сгенерировать g.cs. Какие права необходимы для создания g.cs на сервере, TFS и SP?
Нирав
14

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

DevelopingChris
источник
Извините, это не сработало, оно работало в VS 2008 для меня, так как я начал его использовать. Есть ли синтаксическая ошибка на вашей странице? Вы должны получить диалоговое окно, которое говорит вам, что нужно исправить, чтобы закончить его работу.
DevelopingChris
Это сработало для меня. Класс code-behind имеет int Idсвойство, которое прекрасно компилируется в C #, поскольку оно чувствительно к регистру. Но ID="ControlName"на странице aspx пытался сделать Id = "ControlName". Convert to Web Appсказал что-то вроде ControlName cannot be converted to Int32.
Нельсон Ротермел
9

Преобразование в веб-приложение не работает для меня.

Удаление designer.cs и вставка пустого файла designer.cs также не работали.

Но да, это сработало:

  1. Выбрать все (Default.aspx)
  2. Резать
  3. Сохранить Default.aspx
  4. Вставить
  5. Сохранить Default.aspx

Выполнено. Создан новый файл designer.cs. :)

OD
источник
Я могу подтвердить, что это работает в VS2013, я только сделал это, и это решило мои проблемы.
ToastyMallows
Вы. иметь. получил. к. быть. ребячество. меня. Это работало для меня в VS2015, когда преобразование, как в выбранный ответ не сделал.
GraehamF
6

Я часто обнаруживал, что копирование / вставка вызывает у меня такое поведение . Большинство случаев можно решить путем редактирования идентификатора серверного элемента управления (просто добавьте символ, а затем удалите его).

Также помните, что управление внутри таких вещей, как Repeaters, не отображается в файле конструктора.

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

облет
источник
2
Такая ошибка у меня много раз. Если вы копируете HTML с одной страницы на другую и у вас есть элементы управления с runat = "server", элементы управления будут переименованы, чтобы избежать конфликта. Однако, если вы вставите внутрь тегов «html comment» <! - whaterver ->, идентификаторы элемента управления не будут изменены, и любой конфликт остановит создание файла конструктора, поскольку существует два элемента управления с одинаковым идентификатором. Это связано с тем, что элементы управления внутри html-тегов "comments" также создаются. ;)
Томасофен
5

Мой опыт показывает, что если вы хотите сделать, как в этой статье, как указано выше.

Ваш файл разметки (aspx / ascx) должен содержать атрибут CodeBehind = "MyPage.aspx.cs", иначе он не будет работать. Я писал об этом здесь .

Йохан Лейно
источник
Добавил этот атрибут, затем сохранил; ничего. Затем удалил Наследует, сохранил, восстановил и вуаля файл кода дизайнера обновился! Эта утомительная особенность ловит меня каждый раз :-(
GlennG
обе ссылки мертвы = (
Маслоу
5

Я нашел способ решить эту проблему, не меняя код и не выполняя такие команды, как «Преобразовать в веб-приложение» - и это тоже просто!

Я обнаружил, что перезапуск Visual Studio часто решает проблему, но иногда это не так. В этих случаях, если вы закрываете Visual Studio, а затем удаляете все содержимое в каталоге «obj» для веб-проекта, прежде чем открывать его снова, он всегда работал для меня.

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

tommycode
источник
У меня была эта проблема с унаследованным приложением, за которое я отвечал за поддержку. Я хочу сказать спасибо за указание на это. Мне не разрешено переходить в веб-приложение ", создавать новое решение или делать что-либо, кроме исправления ошибок. Дизайнер постоянно рушится для меня. Но это помогло до сих пор.
Джейми Тейлор
4

(Следующее приходит из опыта с VS2005.)

Если вы отредактируете страницу ASPX во время отладки, то кодовая часть не будет обновлена ​​новыми классами. Таким образом, вы должны прекратить отладку, тривиально отредактировать страницу ASPX (например, добавить кнопку или что-то в этом роде), затем нажать «Представление», затем удалить кнопку. Затем ваши дизайнерские файлы должны быть обновлены.

Если у вас другая проблема с VS2008, то я не могу помочь.

EndangeredMassa
источник
Столкнулся с этим с VS.Net 2010 ... должен был сделать именно это ... Спасибо @EndangeredMassa за подсказку ... Я имел обыкновение проходить это и в дни VS.Net 2002/2003 ... Хотел бы я знал это тогда;)
Ричард Б
4

Когда вы находитесь в режиме конструктора, щелкните правой кнопкой мыши на экране и нажмите «Обновить».

Yertle
источник
3

Еще одна вещь, которая работала, была -

  1. Удалите вручную, а затем создайте файл конструктора в файловой системе.
  2. Редактировать файл проекта .
  3. Добавить код для включения дизайнера
    Например:<Compile Include="<Path>\FileName.ascx.designer.cs"> <DependentUpon>FileName.ascx</DependentUpon> </Compile>
  4. Перезагрузить проект
  5. Откройте как (c / p) x файл в режиме дизайна / просмотра и сохраните его.
  6. Проверьте дизайнерский файл. Код будет там.
Vandesh
источник
3

Если вы используете VS2013 или более позднюю версию, убедитесь, что код, на который ссылается атрибут «CodeBehind», а не «CodeFile», выполните следующие действия.

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="yourControl.ascx.cs" Inherits="yourControl.yourControl" %>
  • создать пустую страницу дизайнера (или очистить ее, если она уже существует, «yourControl.ascx.designer.cs»)
  • в ascx (или aspx) скопируйте весь код, удалите его и сохраните. Снова пройдитесь, затем сохраните.
  • файл конструктора должен быть заполнен сейчас.
Тарек Эль-Малла
источник
2
  • Выберите все в файле дизайнера и удалите все в файле, оставив его пустым, а затем сохраните
  • Выделите все в файле ASPX / ASCX и обрежьте все, а затем вставьте обратно
  • Файл конструктора должен был восстановить код
Марк Сидаде
источник
1
Это сработало для меня! Я также сохранил файл .aspx после вырезания всего. Вставлен обратно, сохранен, и мой (ранее пустой) файл конструктора был полностью заполнен.
DaveD
2

Вот что я испытал: выберите папку веб-сайта правой кнопкой мыши в обозревателе решений, выберите «Преобразовать в веб-приложение» для всех файлов aspx, которые будут сгенерированы дизайнерским файлом.

Самир

Самира
источник
2

Просто чтобы добавить сюда длинный список ответов - я только что столкнулся с этой проблемой в VS2010 (SP1) с файлом .aspx. Я попытался добавить и удалить стандартные элементы управления ASP (что работало в прошлом), но в итоге мне пришлось удалить одну из строк runat = server из существующего элемента управления (и сохранить), чтобы принудительно восстановить файл конструктора.

Рори Солли
источник
2

Я сталкивался с той же проблемой уже много лет, работая в Visual Studio 2008. Я перепробовал каждое «решение» в StackOverflow и десятках блогов, точно так же, как я уверен, что у всех вас есть. И иногда они работают, а иногда нет, точно так же, как я уверен, что вы все сталкивались. И, видимо, это все еще проблема в VS2010 и VS2012.

Наконец, пару месяцев назад я решил, что этого достаточно, и через несколько недель я создал инструмент под названием «Редизайнер», который генерирует файлы .designer. Это с открытым исходным кодом под лицензией BSD , с исходным кодом, доступным на SourceForge - бесплатное использование, бесплатное воровство, бесплатное делать все, что угодно. И он делает то, что Visual Studio не может сделать так часто, то есть генерирует файлы .designer быстро и надежно.

Это автономный инструмент командной строки, который анализирует файлы .aspx и .ascx, выполняет всю необходимую магию отражения и выплевывает правильные файлы .designer. Он выполняет весь синтаксический анализ и сам рефлексию, чтобы не полагаться на существующий код, который, как мы все знаем, слишком хорошо нарушен. Он написан на C # против .NET 3.5, но из-за этого старается не использовать даже System.Web для чего-либо, кроме объявлений типов, и вообще не использует Visual Studio и не полагается на нее .

Редизайнер может создавать новые файлы .designer; и он предлагает опцию --verbose, так что когда что-то идет не так, вы получаете гораздо лучшие сообщения об ошибках, чем «Исключение типа System.Exception было сгенерировано». И есть опция --verify, которая может использоваться, чтобы сообщать вам, когда ваши существующие файлы .designer сломаны - отсутствуют элементы управления, неверные объявления свойств, не читаются Visual Studio или просто расточаются.

Мы использовали его на своем рабочем месте, чтобы вытащить нас из джемов в течение большей части прошлого месяца, и, хотя Redesigner все еще является бета-версией, он уже достаточно далеко продвинулся, и его стоит поделиться с общественностью. Вскоре я собираюсь создать плагин для Visual Studio, чтобы вы могли просто щелкнуть правой кнопкой мыши, чтобы проверить или восстановить файлы конструктора так, как вы всегда хотели. Но тем временем использование командной строки довольно просто и избавит вас от многих головных болей.

В любом случае, скачайте копию Redesigner сейчас и прекратите вырывать волосы . Вам это не всегда нужно, но когда вы это сделаете, вы будете рады, что оно у вас есть!

https://sourceforge.net/projects/redesigner/

Шон Веркема
источник
кажется излишним для простого исправления
Крис МакГрат
1
@ChrisMcGrath Может быть, излишним, но я чувствовал боль, которая побудила этот инструмент. Я восхищаюсь его преданностью вкладывать время, чтобы построить его :)
Джордан Ригер
2

TL; DR;
Отредактируйте Inheritsатрибут @Pageдирективы страницы ASPX и нажмите «Сохранить». Ваш дизайнерский файл должен быть восстановлен.

Убедитесь, что Inherits= <namespace>. <Class_name> и CodeBehind= <class_name> .aspx.cs


Я пытался сделать это в проекте Sharepoint 2010, используя VS 2010 и TFS , и ни одно из приведенных выше решений не помогло мне. Прежде всего, опция «Преобразовать в веб-приложение» отсутствует в контекстном меню файла .ASPX при использовании TFS в VS 2010.

Этот ответ помог наконец . Мой класс выглядел так:

namespace MyProjects.Finance.Pages
{
    public partial class FinanceSubmission : WebPartPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }

        // more code
    }
}

И моя @Pageдиректива была (разрывы строки здесь для ясности):

<%@ Page Language="C#" AutoEventWireup="true" 
    CodeBehind="FinanceSubmission.aspx.cs"
    Inherits="MyProjects.Finance.Pages.FinanceSubmission"
    MasterPageFile="~masterurl/default.master" %>

Я первый изменил Inheritsк MyProjects.Finance.Pages , нажмите Сохранить, затем изменил его обратно в MyProjects.Finance.Pages.FinanceSubmission и снова нажмите кнопку Сохранить. И Уолла! Страница дизайнера была обновлена!

Надеюсь, это поможет кому-то, использующему TFS!

оборота SNag
источник
2

В Visual Studio:

1) Удалите файл aspx.designer.cs

2) Щелкните правой кнопкой мыши по вашему aspx-файлу и выберите «Преобразовать в веб-приложение». Это должно добавить aspx.designer.cs назад и в актуальном состоянии.

Если вы получаете сообщение об ошибке:

«Сбой при создании файла конструктора: метод или операция не реализованы».

Попробуйте закрыть Visual Studio, а затем снова откройте ваш проект и повторите шаг номер два

Как сгенерировать aspx.designer.cs в визуальной студии?

оборота ноуман аршад
источник
2
«Преобразовать в веб-приложение» не существует в контекстном меню файла ASPX. По крайней мере, это не так в VS Professional 2015.
Крис Уолш,
2
  1. Шаг 1 : Выберите весь код aspx, обрежьте [CTRL + X] этот код и сохраните.

  2. Шаг 2 : снова вставьте тот же код на той же странице и сохраните снова

Теперь ваша страница .desinger обновится со всеми элементами управления на странице .aspx.

Sampat
источник
1

Удалите файл designer.cs, затем щелкните правой кнопкой мыши файл .aspx и выберите «Преобразовать в веб-приложение». Если есть проблема с вашими объявлениями управления, такими как неправильная форма тега, вы получите сообщение об ошибке, и вам нужно будет исправить неверно сформированный тег, прежде чем Visual Studio сможет успешно заново сгенерировать ваш файл конструктора.

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

Макс Ланкастер
источник
1

Это ошибка в IDE; Я видел это с VS 2003. Хотя решение простое.

Сохраните ваши файлы. Полностью выйдите из IDE (убедитесь, что процесс останавливается, задание mgr.)

Вновь откройте решение, испачкайте разметку, сохраните. Исправлена.

bcweis
источник
1

У меня были две проблемы ... устаревший AJAXControlkit - удалил старую библиотеку DLL, удалил старые элементы управления из панели инструментов, скачал новую версию, загрузил панель инструментов и перетащил новые элементы управления на страницу (см. Http://www.experts-exchange.com /Programming/Languages/.NET/Visual_Studio_.NET_2005/Q_24591597.html )

Также в моем элементе управления надписью были написаны ошибки (вместо «cssclass» использовался «класс»).

Ta

user381377
источник
1

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

Демз
источник
1

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

Если это так, то, во-первых, если вы устанавливаете несколько файлов; Исправьте по одному сначала.

Когда вы компилируете, исправляйте сгенерированные ошибки. Вероятно, они будут иметь одинаковые ошибки во всех файлах.

Затем, если у вас есть файлы Designer, удалите все вставленные файлы - конструктора. Затем убедитесь, что при компиляции нет никаких других ошибок, кроме файлов конструктора.

Наконец, щелкните правой кнопкой мыши свой веб-проект и выберите «Преобразовать в веб-приложение». Это вставит нужные вам дизайнерские файлы.

Это самые лучшие шаги для решения проблем.

Carlo
источник
1

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

На самом деле потребовалось посещение страницы, чтобы ASP.Net сообщил мне об ошибке.

Tacroy
источник
1

Это также может произойти, если вы обновите пространство имен и не обновите пространство имен в файле конструктора. Исправлено: обновить пространство имен в файле конструктора тоже.

Бен Уикс
источник
1

Решение, которое сработало для меня:

Я просто скопировал страницу и вставил ее в ту же часть, затем переименовал первую страницу (какое бы имя она ни назвала) и переименовал скопированную страницу в исходную. Теперь элементы управления доступны.

вы
источник