Ответ 1
Похоже, что ваш файл дизайнера (PageName.designer.cs) немного перепутался. Я бы попробовал удалить кнопку со своей страницы и добавить ее снова.
У меня есть следующий код на моей странице aspx:
<asp:Button runat="server" ID="myButton" Text="hello" />
и это в моем коде:
protected void Page_Load(object sender, EventArgs e)
{
myButton.Text = "bye";
}
По какой-то причине intellisense берет идентификатор "myButton" в коде позади, но когда он компилирует, он говорит
он не может построить, потому что он не распознает его!
Моя страница - это aspx-страница по умолчанию, которая использует главную страницу, кнопка находится внутри элемента управления содержимым, и все настроено на правильное выполнение на сервере, страница работает и отображается отлично, за исключением этой проблемы с разрешением кнопки!
Любые идеи?
Похоже, что ваш файл дизайнера (PageName.designer.cs) немного перепутался. Я бы попробовал удалить кнопку со своей страницы и добавить ее снова.
Если кнопка находится внутри контейнера именования, такого как ретранслятор, вы не сможете использовать его так. Вместо этого вам нужно сделать что-то вроде этого:
Button myButton = (Button)Container.FindControl("myButton");
myButton.Text = "bye";
Я столкнулся с той же проблемой, сначала я пытался понять, что не так с моим файлом designer.cs. Но после того, как я понял, что для моей разметки WebForm я использовал копию/вставку из веб-формы по умолчанию. Таким образом, проблема заключалась в том, что, как сказал Protector, убедитесь, что вы проверяете свойство inherit для @Page:
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="InputValidation._Default" %>
Я нашел простое решение для этого случая.
Просто откройте файл конструктора и добавьте строку, соответствующую вашему пользовательскому интерфейсу.
protected global::System.Web.UI.WebControls.Button myButton;
Где myButton находится Id
вашего элемента управления.
У меня возникла проблема, и я заметил, что файлы Designer.cs
были исключены из моего проекта.
попытайтесь найти их снова включить в свой проект.
удачи
Я знаю, что проблема решена, но когда у меня была подобная проблема, когда я преобразовал WebAplication From С# в VB - я решил это, добавив пространство имен X/End Namespace
У меня была такая же проблема сегодня, и в моем случае решение было:
C:\Users\lenovo\AppData\Local\Temp\Temporary ASP.NET Files\
Temporary ASP.NET Files
.Я столкнулся с этой проблемой несколько раз. Иногда классные имена в дизайнере и кодексе не совпадают. В других случаях это пространство имен не совпадает. В других случаях страница конструктора не получает генерируемую переменную-член.
Как отметил mdresser, регенерация файла дизайнера очень хорошо может позаботиться о проблеме. Просто убедитесь, что вы сначала сохранили страницу aspx.
Убедитесь, что у вас нет файлов, которые случайно пытаются наследовать или определять один и тот же (частичный) класс. Эти файлы могут быть полностью не связаны с тем, где ошибка появилась!
Это было долгое время. Buuuut Сегодня я столкнулся с такой же проблемой, поэтому, кажется, никогда не поздно.
Для меня это происходило, потому что TextBox
находился внутри неназванной формы. Затем я устанавливаю id в форму, и я мог бы использовать TextBox
следующим образом: idForm.idTextBox.ToString()
. Я предполагаю, что это произойдет так же, как с button
.
Проблема заключается в том, что у вас могут быть несколько файлов aspx с кодовым файлом в указателях страниц в том же файле codebehind. Он ожидает, что один и тот же элемент управления будет существовать во всех файлах aspx, связанных с одним и тем же кодом, и, таким образом, выбросит ошибку компиляции.
Проверить пространство имен во всех трех файлах. Иногда существует несоответствие между именем пространства имен в файле designer.cs и двумя другими файлами. Убедитесь, что имя пространства имен совпало во всех трех файлах