代码之家  ›  专栏  ›  技术社区  ›  Shyju

ASP.NET控件不在IntelliSense后面的代码中

  •  1
  • Shyju  · 技术社区  · 16 年前

    我有一个ASPX页面,在其中添加了一个具有id和runat属性的ASP.NET文本框控件。但在后面的代码中,我没有看到这个控件的名称在intellisense中。

    ASPX中的页面指令如下

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

    我正在使用vs 2008。你知道怎么摆脱这个吗?

    3 回复  |  直到 8 年前
        1
  •  4
  •   RickNZ    16 年前

    试用使用 CodeFile 而不是 CodeBehind .后者是.NET 1.1的保留。

    另外,确保名称空间在标记和代码之间匹配。做一个测试编译以确保。

        2
  •  3
  •   Gabriel McAdams    16 年前

    当我编辑页面时,我有时会看到这个。当它发生在我身上时,我会关闭这些文件并再次打开它们,它似乎会自行修复。

        3
  •  2
  •   vikingben    12 年前

    如果试图将控件包含在布局模板中,则会发生这种情况。例如,如果在登录控件中使用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");