Nano Hash - криптовалюты, майнинг, программирование

Имя 'controlname' не существует в текущем контексте

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

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

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

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

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


  • Правильный ответ на этот вопрос находится в ответе, найденном здесь: stackoverflow.com/a/1981228/168703 03.02.2012
  • Также проверьте пространство имен в файле designer.cs. Иногда после переименования страницы aspx nameapce просто удаляется из файла designer.cs. 19.04.2017
  • Это могло произойти после копирования разметки для элемента управления из другого ASPX-файла. Я удалил скопированную разметку и вручную написал контрольную разметку, и ошибка исчезла. 12.09.2019

Ответы:


1

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

01.04.2009
  • Это тоже помогло мне! Пространство имен было неправильным, и когда я исправил его в директиве @Page, ошибки исчезли. 20.11.2017
  • То же самое и здесь, с небольшим дополнением: убедитесь, что вы проверяете, что у него есть полное имя класса. По какой-то причине VS изменил мой на Inherits = KioskB, когда он должен был быть MyNamespace.KioskB. Это выглядело правильно, пока я не сравнил разметку с другой страницей и не заметил, что часть пространства имен исчезла. 20.08.2019

  • 2

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

    • ASP.NET 3.5
    • C#
    • VS2008

    Я пытался создать страницу с поддержкой AJAX (посмотрите учебник по использованию объекта ScriptManager, если вы не знакомы с этим). Я попытался получить доступ к HTML-элементам на странице через код C #, и я получил сообщение об ошибке, в котором указывалось, что идентификатор для значения HTML ID «не существует в текущем контексте».

    Чтобы решить эту проблему, мне пришлось сделать следующее:

    1. Запуск на сервере

    Чтобы получить доступ к элементу HTML как к переменной в коде C #, в тег элемента HTML в файле aspx необходимо поместить следующее значение:

    runat="server"
    

    Некоторые объекты на панели инструментов в интегрированной среде разработки Visual Studio не включают это значение автоматически при добавлении на страницу.

    2. Восстановите автоматически созданный файл C #:

    • В обозревателе решений под файлом aspx должно быть два файла: * .aspx.cs и * .aspx.designer.cs. Файл дизайнера создается автоматически.
    • Удалите существующий файл * .aspx.designer.cs. Убедитесь, что вы удалили только файл дизайнер. Не удаляйте другой, потому что он содержит ваш код C # для страницы.
    • Щелкните правой кнопкой мыши родительский файл aspx. Во всплывающем меню выберите Преобразовать в веб-приложение.

    Теперь элемент должен быть доступен в файле кода C #.

    30.12.2009
  • fyi, щелчок правой кнопкой мыши по параметру «Преобразовать в веб-приложение» также доступен для папок и проектов. 07.04.2010
  • вариант №2 был для меня идеальным ответом в решении этой проблемы, когда я столкнулся с ней сегодня! 01.02.2011
  • К вашему сведению, в Visual Studio 2013 параметр «Преобразовать в веб-приложение» перемещен в меню «Проект»: stackoverflow.com/questions/19561982/ 28.03.2014
  • удаление и воссоздание файла дизайнера сработало для меня - спасибо 28.09.2015
  • Это работало с использованием меню «Проект». Примечание: тег ‹% @ Page в файле .aspx должен использовать" Codebehind ", а не" Codefile ". 18.11.2016

  • 3

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

    13.10.2009
  • или скопируйте элемент Label1 на другую страницу. 27.07.2010

  • 4

    У меня такая же проблема. Оказывается, в моем проекте были и MyPage.aspx, и Copy of MyPage.aspx.

    12.07.2011

    5

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

    27.04.2011

    6

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

    <local:CustomControl Name="Custom" /> 
    

    В своем коде я попытался использовать Custom.Blah, но получил ошибку:

    The name 'Custom' does not exist in the current context
    

    Какая уловка для меня заключалась в изменении моего контроля в Xaml на это:

    <local:CustomControl x:Name="Custom" />
    

    Надеюсь, это кому-то поможет!

    08.06.2012

    7

    Я получаю ту же ошибку после того, как внес изменения в контекст данных. Но я сталкиваюсь с чем-то незнакомым. Я привык публиковать свои файлы вручную. Обычно, когда я это делаю, в папке публикации не появляется папка App_Code. Но я начал использовать публикацию VS 12, которая напрямую с вашей помощью публикуется на веб-сервере. И затем я получаю сообщение об ошибке о том, что приложение предварительно скомпилировано. Затем я удаляю папку app_code, она сработала. Но затем это дало мне ошибку контекста данных, которую вы получаете. Итак, я просто удалил все файлы и снова запустил публикацию без ограничений для файлов (каждая папка и файл будут опубликованы), тогда это сработало как шарм.

    02.05.2013

    8

    У меня была такая же проблема, моя проблема заключалась в отсутствии пробела между двумя атрибутами "

    AutoGenerateColumns="False"DataKeyNames="ProductID"
    

    вместо того

    AutoGenerateColumns="False" DataKeyNames="ProductID"
    
    09.05.2014

    9

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

    09.11.2016

    10

    эта ошибка часто возникает, когда вы пропускаете runat="server".

    16.05.2017

    11

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

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

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

    05.10.2012

    12

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

    01.01.2013

    13

    У меня была аналогичная проблема при настройке с помощью Repeater после преобразования его из DataList.

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

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

    И это предотвратило создание репитера в файле проекта.

    03.01.2013

    14

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

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

    15.04.2013

    15

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

    18.03.2014

    16

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

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

    30.04.2014

    17

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

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

    05.04.2018

    18

    В моем случае мне пришлось перебрать 417 ошибок «controlname not found», чтобы найти настоящую ошибку: я заменил DLL, но не обновил номер версии в web.config. Исправлено и построено успешно, через 3 минуты после этого все другие ошибки разрешились сами собой.

    02.04.2020
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..