ASP.NET серверный элемент управления не объявлен в CodeBehind
Я знаю, что всегда были проблемы с объявлением серверных элементов управления непосредственно в HTML в Visual Studio. Обычно вам нужно открыть страницу в режиме разработки, чтобы они были сгенерированы в коде, чтобы вы могли получить доступ через ваш код. Но у меня есть странная проблема здесь. Я добавил элемент управления asp:Label на страницу, которая наследует главную страницу.
<asp:Label ID="uxEnteteresultat" runat="server" Text="Test"></asp:Label>
Эти страницы используют структуру с именем Ext.Net
что генерирует Ext.js
код. Мой дизайнер просто не работает, поэтому я никак не могу сгенерировать этот элемент управления в файле code behind.
И где эти элементы управления объявлены??? В более старой версии.Net (я в VS 2010 использую фреймворк 4.0) мы могли видеть его в частичном классе. Где они сейчас? Есть ли способ обойти себя в VS 2010?
Спасибо!
Нет никаких файлов designer.cs вообще. Это сайт, а не проект. Это может быть частью проблемы...
3 ответа
В VS 2010 каждая форма должна состоять из трех частей:
MyForm.aspx
MyForm.aspx.cs
MyForm.aspx.designer.cs
Вы должны иметь возможность добавить метку следующим образом:
Добавьте это к MyForm.aspx
:
<asp:Label ID="lblOrganizer" runat="server" />
Добавьте это к MyForm.aspx.designer.cs
(в public partial class
):
protected global::System.Web.UI.WebControls.Label lblOrganizer;
Элементы управления, объявленные внутри страницы mypage.aspx, создаются в частичном классе внутри mypage.aspx.designer.cs
/// <summary>
/// uxEnteteresultat control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label uxEnteteresultat;
Если ваши элементы управления не объявлены в этом файле, они не появятся в codebehind mypage.aspx.cs. Помните, что все элементы управления должны иметь свойство runat = "server" в своем объявлении в HTML.
Проверьте этот похожий вопрос:
Элементы управления Asp.net не доступны в коде позади
Если вы получаете intellisense, то все в порядке, потому что вам не нужно явно объявлять свои элементы управления в коде, начиная с ASP.NET 2.0 (частичные классы). Если вы не можете получить к нему доступ, проверьте файл конструктора и добавьте его вручную для каждого пользователя 1694951.