Ответ 1
Щелкните правой кнопкой мыши файл ASPX (или ascx) и выберите Преобразовать в веб-приложение (или что-то в этом роде). Это заставит обновить файл конструктора.
Я столкнулся с небольшой большой проблемой. Я взял элемент управления dropdownList и ID
"drpDownCountries
"в проекте ASP.Net. Проблема заключается в том, что" The dropdownlist control
размещается на странице, в коде за файлом С#, набирая имя элемента управления "drpDownCountries"
, этот идентификатор элемента управления указан в списке членов объекта. Но при компиляции проекта я получаю следующую ошибку.
Ошибка: - Имя "drpDownCountries" не существует в текущем контексте.
Я тоже проверял эту вещь на разных машинах. Но такая же ошибка происходит. Я не понимаю, в чем причина этого.
Щелкните правой кнопкой мыши файл ASPX (или ascx) и выберите Преобразовать в веб-приложение (или что-то в этом роде). Это заставит обновить файл конструктора.
У меня была такая же проблема, и я попробовал все ответы, перечисленные здесь, безрезультатно.
Что в конечном итоге сработало для меня - это внести изменения в файл ascx в представлении "Дизайн", а затем сохранить его. Это, наконец, вынудило Visual Studio регенерировать файл designer.cs и включить мой новый элемент управления.
Я видел, что эта ошибка возникает, когда в папке проекта есть копия .aspx-страницы.
Пример:
Ошибка в Test.aspx.
В папке проекта есть файл Test-copy.aspx.
Удалить, переименовать с другим расширением или переместить Test-copy.aspx в другую папку.
Ошибка решена.
Возможно, в вашем файле aspx/aspx произошла ошибка, из-за которой файл конструктора не обновляется правильно. Вы можете подтвердить это, добавив что-то новое (например. "") И посмотреть, можете ли вы получить к нему доступ. Если нет, в разметке, вероятно, будет что-то, что вам нужно исправить.
Итак, сначала проверьте, что ваш документ ascx определен таким образом
ExampleClass.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ExampleClass.ascx.cs" Inherits="ExampleClass" %>
ExampleClass.ascx.cs
public partial class ExampleClass : System.Web.UI.UserControl
{
protected void Page_Load(object sender, System.EventArgs e)
{
}
}
Вы должны указать код для получения справки.
В любом случае может возникнуть проблема, заключающаяся в том, что drpDownCountries содержится в панели управления.
Элемент управления панелью является элементом управления контейнером, поскольку он может содержать много управления.
Чтобы получить доступ к элементам управления внутри этого элемента управления Panel, вам сначала нужно "помочь" ASP.Net, чтобы найти его.
Типичный способ сделать это - использовать метод FindControl посмотреть здесь.
Пример кода:
DropDownList myDrop = (DropDownList)this.Panel1.FindControl("drpDownCountries");
if(myDrop != null)
{
..somecode..
}
Единственное, что сработало для меня, это добавить контроллер temp в файл aspx и сохранить его. Это снова создало конструктора, и теперь мои контроллеры распознаются! Я так горжусь. Затем вы можете удалить контроллер темпа и сохранить его, он ничего не испортит, вы напугаете кошку!
Восстановите проект. Просто создайте новый проект и добавьте элементы один за другим и надейтесь, что этого больше не повторится. Если это так, хорошо, что часть опыта Microsoft: воссоздайте другой проект и так далее, пока вы не решите выйти из своей работы и присоединиться к open-source.
КОРРЕКЦИЯ
Я собираюсь повторить проект, над которым я работаю последние 3 дня, используя ASP.NET MVC. Я должен использовать технологию с открытым исходным кодом, но, к сожалению, это не мое решение для этого проекта не использовать .NET.
В aspx этот тип ошибки часто возникает, когда вы пропускаете runat="server"