Имя «controlname» не существует в текущем контексте - PullRequest
70 голосов
/ 01 апреля 2009

У меня есть веб-приложение, над которым я работаю (ASP.NET2.0 с C #, используя VS2005). Все работало нормально, и внезапно я получаю сообщение об ошибке:

Error 1 The name 'Label1' does not exist in the current context

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

Это происходит только на 1 странице. И это похоже на то, что кодовый код не распознает элементы управления. Другая интересная вещь заключается в том, что intellisense также не получает никаких элементов управления ..

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

Ответы [ 17 ]

0 голосов
/ 01 мая 2014

В моем случае, когда я создавал веб-форму, она называлась WebForm1.aspx и соответствующими именами (WebForm1). Письмо, я переименовал это к чему-то другому. Я переименовал вручную почти во всех местах, но одно место в файле конструктора все еще показывало его как «WebForm1».

Я тоже это изменил и избавился от этой ошибки.

0 голосов
/ 18 марта 2014

Я столкнулся с этой же проблемой. Очевидно, вам не следует называть класс в BLL тем же именем, что и один из файлов .aspx / .aspx.cs. Я думал, что они не будут в том же объеме, и т. Д., Но это слишком сильно перепутало внутреннюю работу Visual Studio. Я немного удивлен, что нет ничего, что могло бы помешать вам сделать это, если это приведет к такому типу ошибки. В любом случае, просто удалите файлы .aspx / .aspx.cs и пересоберите свой проект. Затем верните их под другим именем. Вы можете скопировать / вставить свой код в другой редактор, если не хотите перепечатывать его обратно.

0 голосов
/ 15 апреля 2013

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

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

0 голосов
/ 01 января 2013

У меня была та же проблема, так как я пытался воспроизвести файл aspx из проекта Visual Studio 2010, поэтому у элементов управления было свойство clientidmode = "Static". Когда это было удалено, это было решено.

0 голосов
/ 05 октября 2012

Вариант решения № 2, предложенный выше, работает для приложений Windows Forms, а не веб-приложения ASPX. Я получил аналогичную ошибку в веб-приложении, я решил эту проблему, удалив файл, в котором у меня был пользовательский элемент управления с тем же именем, этот файл aspx был фактически резервным файлом и нигде не упоминался в процессе, но все же это вызвало ошибку, имя пользовательского элемента управления, зарегистрированное в файле резервной копии, было названо точно так же в файле aspx, на который ссылался поток процесса. Поэтому я удалил файл резервной копии и создал решение, сборка прошла успешно.

Надеюсь, это поможет кому-то в похожем сценарии.

Виджая Лакшми.

0 голосов
/ 05 апреля 2018

1) Проверьте свойство CodeFile в <% @ Page CodeFile = "filename.aspx.cs"%> на странице "filename.aspx", ваш код за именем файла и это имя свойства должны совпадать.

2) вы можете пропустить runat = "server" в коде

0 голосов
/ 03 января 2013

У меня была похожая проблема при настройке Repeater после преобразования его из DataList.

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

<asp:Repeater runat="server" ID="ClientsRP"DataSourceID="ClientsDS">
    .
    .
    .
</asp:Repeater>

И это предотвратило генерацию повторителя в файле проекта.

...