Элементы управления ASP.NET не входят в состав программного кода IntelliSense - PullRequest
1 голос
/ 23 декабря 2009

У меня есть страница aspx, где я добавил один элемент управления текстового поля asp.net с атрибутом ID и RUNAT. Но в Code-behind я не вижу имя этого элемента управления в intellisense.

Директива моей страницы в aspx выглядит следующим образом

 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="MyProject_UI._Default" %>

Я использую VS 2008. Есть идеи, как от этого избавиться?

Ответы [ 3 ]

4 голосов
/ 23 декабря 2009

Попробуйте использовать CodeFile вместо CodeBehind. Последний является удержанием от .NET 1.1.

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

3 голосов
/ 23 декабря 2009

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

2 голосов
/ 07 января 2014

Это произойдет, если вы пытаетесь включить свой элемент управления в LayoutTemplate. Например, если вы используете метку asp в элементе управления входом, вы преобразовали его в шаблон LayoutTemplate.

<asp:Login ID="userLogin" runat="server">
   <LayoutTemplate>
     <!--Username and password controls-->
     <asp:Button ID="btnLogin" CommandName="Login" runat="server" Text="Login" />
     <asp:Label ID="lblAlert" runat="server"></asp:Label>
   </LayoutTemplate>

Таким образом, ваш lblAlert не будет отображаться в коде, взятом за него, вынуть его из шаблона макета или использовать цикл, чтобы найти элемент управления в объекте макета.

var mylabel = (Label)userLogin.FindControl("lblAlert");
...