Designer.cs не обновляется, когда новые элементы управления добавлены в .aspx

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

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

Любые идеи?

Ответ 1

Попробуйте

1.- Измените CodeBehind="Name.aspx.cs" на CodeFile ="Name.aspx.cs"

2.- Построить

3.- Измените CodeFile ="Name.aspx.cs" на CodeBehind ="Name.aspx.cs"

Ответ 2

У меня была эта проблема в моей работе.

Самое надежное, что вы регенерируете файл .designer.cs и здесь - это решение:

  • Найдите поврежденный файл aspx.designer.cs через обозреватель решений
  • Удалите только файл designer.cs из вашего проекта.
  • Щелкните правой кнопкой мыши ваш основной файл aspx и выберите "Преобразовать в веб-приложение".

Ответ 3

Закройте Visual Studio, затем удалите временные файлы ASP.NET из C:\Windows\Microsoft.Net\Framework\Your_.Net_Version\ProjectName Удалите папку ProjectName и запустите Visual Studio. Некоторое время назад у меня была аналогичная проблема, и она была решена этими действиями.

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

Ответ 4

Чтобы заменить файл конструктора в VS 2013:

  • Удалить старый файл *.designer.cs
  • выберите файл *.aspx
  • Выберите "Преобразовать в веб-приложение" в раскрывающемся меню "Проект сверху"

Ответ 5

Одна простая/глупая ошибка, которая также приводит к аналогичным симптомам, заключается в том, что вы копируете файлы aspx и aspx.cs и переименовываете их, но пренебрегаете обновлением ссылок внутри файла.

Я столкнулся с этим вопросом, пытаясь найти каталог temp asp.net, но очистка, которая не помогла. Затем я понял, что не обновил CodeFile="Page.ascx.cs" после того, как скопировал файлы для создания новой измененной версии страницы. Затем я пытался добавить элемент управления и ссылаться на него в PageModified.ascx.cs, но продолжал говорить, что его не существует.

Ответ 6

Я сделал это в VS2012:

  • Откройте страницу .aspx.designer.cs. Найдите управляющую декларацию тот же тип управления (то есть LinkButton)
  • Скопируйте его в конец файла (до конца фигурной скобки класса)
  • Переименуйте переменную управления в соответствие с именем вашего элемента управления.

Что это.

Ответ 7

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

Ответ 8

Иногда в html могут быть ошибки, например, два элемента управления, имеющих один и тот же идентификатор. Также будьте осторожны с тегами div и span. Это мешает дизайнеру обновляться. Для этого проверьте предупреждения в списке ошибок и исправьте их. Вы готовы к работе. Это решило мою проблему.

Ответ 9

Мне удалось решить проблему только вручную, добавив декларацию управления в код за файлом. Каждый раз, когда я пытался восстановить файл design.cs, VS 2013 писал бы те же строки без отсутствующего элемента управления.

Объявление должно быть добавлено в код позади, а не в design.cs, потому что он будет удален при каждом изменении .aspx.

Просто добавьте объявление, как вы бы сделали для любой другой переменной, примерно так:

protected MyNameSpace.MyControl ControlName;

Ответ 10

Для меня решение было:

Переведите свою страницу в режим дизайна и щелкните правой кнопкой мыши/обновите. Это синхронизирует элементы управления с designer.cs. Убедитесь, что файл designer.cs закрыт перед этим.

Источник

Ответ 11

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

<%: Styles.Render("/my-file.css") %>
<%: Scripts.Render("/my-file.js") %>

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

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

Ответ 12

В моем случае мне пришлось добавить runat="server" чтобы перестроить решение. Недостающие элементы были автоматически добавлены в сгенерированный aspx.designer.cs и стали доступны для использования в коде

<button runat="server" id="Button01" type="button" class="Button" onclick="location.href='http://http://www.example.com/';">
   <asp:Label runat="server" Text='<%# GetText("Button01")%>'></asp:Label>
</button>

Ответ 13

Мой файл кода designer.vb не обновлялся из-за ошибки в веб-элементах управления Telerik - у меня было неправильное значение в атрибуте DataKeyNames в MasterTableView. Редактор aspx не воспринимал это во время разработки, поскольку это просто строковое значение, но он вызывал сбой автогенерации файла designer.vb.