У меня есть веб-приложение, над которым я работаю (ASP.NET2.0 с C #, с использованием VS2005). Все работало нормально, и вдруг я получаю ошибку:
Error 1 The name 'Label1' does not exist in the current context
и еще 43 подобных за каждый раз, когда я использовал элемент управления в своем коде страницы.
Это происходит только для 1 страницы. И как будто программный код не распознает элементы управления. Еще одна интересная вещь заключается в том, что intellisense также не использует какие-либо элементы управления.
Я попытался очистить файл решения, удалить файл obj, исключить файлы из проекта, затем повторно добавить их, закрыть VS и перезапустить его и даже перезагрузить компьютер, но ничего из этого не сработало.
Ответы:
Проверьте свой код за именем файла и свойством Inherits в директиве @Page, убедитесь, что они оба совпадают.
источник
Я знаю, что это старый вопрос, но у меня была аналогичная проблема, и я хотел опубликовать свое решение на случай, если оно может помочь кому-то другому. Я столкнулся с проблемой, когда учился использовать:
Я пытался создать страницу с поддержкой AJAX (прочтите руководство по использованию объекта ScriptManager, если вы не знакомы с этим). Я попытался получить доступ к HTML-элементам на странице через код C #, и я получил сообщение об ошибке, в котором указывалось, что идентификатор для значения HTML ID «не существует в текущем контексте».
Чтобы решить эту проблему, мне пришлось сделать следующее:
1. Запуск на сервере
Чтобы получить доступ к элементу HTML как к переменной в коде C #, в тег элемента HTML в файле aspx необходимо поместить следующее значение:
runat="server"
Некоторые объекты на панели инструментов в Visual Studio IDE не включают это значение автоматически при добавлении на страницу.
2. Восстановите автоматически созданный файл C #:
Теперь элемент должен быть доступен в файле кода C #.
источник
исключите любые другие страницы, которые ссылаются на тот же файл кода программной части, например более старую страницу, которую вы скопировали и вставили.
источник
У меня такая же проблема. Оказалось, что в моем проекте были и MyPage.aspx, и Copy of MyPage.aspx.
источник
Также убедитесь, что у вас нет файлов, которые случайно пытаются наследовать или определять тот же (частичный) класс, что и другие файлы. Обратите внимание, что эти файлы могут показаться не связанными с файлами, в которых действительно возникла ошибка!
источник
Я столкнулся с той же ошибкой, за исключением того, что это была ошибка WPF. Я переставлял проекты и определил элемент управления следующим образом:
<local:CustomControl Name="Custom" />
В своем коде я попытался использовать Custom.Blah, но получил ошибку:
The name 'Custom' does not exist in the current context
Какая уловка для меня заключалась в изменении моего контроля в Xaml на это:
<local:CustomControl x:Name="Custom" />
Надеюсь, это кому-то поможет!
источник
Я получаю ту же ошибку после того, как внес изменения в контекст данных. Но я сталкиваюсь с чем-то незнакомым. Я привык публиковать свои файлы вручную. Обычно, когда я это делаю, в папке публикации не появляется папка App_Code. Но я начал использовать публикацию VS 12, которая напрямую публикуется с вашей помощью на веб-сервере. И затем я получаю сообщение об ошибке о том, что приложение предварительно скомпилировано. Затем я удаляю папку app_code, она сработала. Но затем это дало мне ошибку контекста данных, которую вы получаете. Итак, я просто удалил все файлы и снова запустил публикацию без ограничений для файлов (каждая папка и файл будут опубликованы), тогда это сработало как шарм.
источник
У меня была такая же проблема, моя проблема заключалась в отсутствии пробела между двумя атрибутами "
AutoGenerateColumns="False"DataKeyNames="ProductID"
вместо
AutoGenerateColumns="False" DataKeyNames="ProductID"
источник
Я исправил это в своем проекте, сделав резервную копию текущих файлов (так что у меня все еще был код), удалив текущий aspx (и дочерние страницы), создав новый и скопировав содержимое файлов резервных копий в новые файлы.
источник
эта ошибка часто возникает, когда вы промахиваетесь
runat="server"
.источник
Вариант решения № 2, предложенный выше, работает для приложений Windows Forms, а не для веб-приложения aspx. У меня была аналогичная ошибка в веб-приложении, я решил ее, удалив файл, в котором у меня был пользовательский элемент управления с тем же именем, этот файл aspx на самом деле был файлом резервной копии и нигде в процессе не упоминался, но все же он вызвал ошибку, потому что имя пользовательского элемента управления, зарегистрированное в файле резервной копии, было точно таким же, как и в файле aspx, на который была сделана ссылка в потоке процесса. Итак, я удалил файл резервной копии и построил решение, сборка прошла успешно.
Надеюсь, это поможет кому-то в подобном сценарии.
Виджая Лакшми.
источник
У меня была такая же проблема, так как я пытался воспроизвести файл aspx из проекта Visual Studio 2010, поэтому элементы управления имели свойство clientidmode = "Static". Когда это было удалено, это было решено.
источник
У меня была аналогичная проблема при настройке с помощью Repeater после преобразования его из DataList.
Проблема заключалась в том, что я случайно объединил 2 атрибута при удалении ненужного.
<asp:Repeater runat="server" ID="ClientsRP"DataSourceID="ClientsDS"> . . . </asp:Repeater>
И это предотвратило создание репитера в файле проекта.
источник
У меня было такое же сообщение об ошибке. В моем коде не было ошибок и он работал отлично, затем я решил вернуться и переименовать одну из моих кнопок, и внезапно он выдает ошибку компиляции, сопровождаемую синим волнистым подчеркиванием, говорящим о том, что элемент управления не существует в текущем контексте ...
Оказалось, что Visual Studio была тупой, поскольку проблема была связана с файлами резервных копий, которые я сделал из моего класса aspx.cs. Я удалил их, и ошибки исчезли.
источник
Я столкнулся с этой же проблемой. Очевидно, вам не следует называть класс в BLL тем же именем, что и у одного из файлов .aspx / .aspx.cs. Я думал, что они не будут в той же области и т. Д., Но это слишком сильно испортило внутреннюю работу Visual Studio. Я немного удивлен, что нет ничего, что могло бы помешать вам сделать это, если это приведет к возникновению такой ошибки. В любом случае просто удалите файлы .aspx / .aspx.cs и перестройте свой проект. Затем верните их под другим именем. Вы можете скопировать / вставить свой код в другой редактор, если не хотите вводить его заново.
источник
В моем случае, когда я создавал веб-форму, она называлась WebForm1.aspx и соответствующими именами (WebForm1). Письмо, я переименовал это во что-то другое. Я переименовал вручную почти все места, но одно место в файле дизайнера все еще отображало его как «WebForm1».
Я тоже изменил это и избавился от этой ошибки.
источник
1) Проверьте свойство CodeFile на <% @ Page CodeFile = "filename.aspx.cs"%> на странице "filename.aspx", ваш код за именем файла и это имя свойства должны совпадать.
2) вы можете пропустить runat = "server" в коде
источник
В моем случае мне пришлось перебрать 417 ошибок «controlname not found», чтобы найти настоящую ошибку: я заменил DLL, но не обновил номер версии в web.config. Исправлено и построено успешно, через 3 минуты после этого все остальные ошибки разрешились сами собой.
источник