后面的代码无法访问Asp.net控件

时间:2011-05-30 20:27:09

标签: c# asp.net

我有一个以前由其他人建造的项目。当我尝试向页面添加新控件时,我无法在后面的代码中访问它。当我尝试访问它时,会出现一条错误消息,指出Control未在当前上下文中定义。

<%@ Page Language="C#" MasterPageFile="~/HRMS.Master" AutoEventWireup="true"     CodeBehind="manageEmployee.aspx.cs" Inherits="HRMS.manageEmployee" Title="Untitled Page" %>

<%@ Register Assembly="eWorld.UI" Namespace="eWorld.UI" TagPrefix="ew" %>
<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="cc1" %>


<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <script type="text/javascript">
    document.getElementById("employee").setAttribute("class", "selected");
    </script>
<!--OPEN CONTENT DIV-->

     <asp:ScriptManager ID="ScriptManager1" runat="server">
     </asp:ScriptManager>
    <!-- Only this area is updated on PostBack -->

<div class="manage_employ">

    <ul>
        <li style="margin-top:10px; margin-bottom:15px"><input type="image" src="images/img_manageEmployee01.png"/></li>
    </ul>

    <ul>
        <li>First name</li>
        <li><asp:TextBox runat="server" class="text_input" id="txtFirstName"/></li>
        <asp:RequiredFieldValidator ID="validatorFirstName" runat="server" ErrorMessage="*" ControlToValidate="txtFirstName"></asp:RequiredFieldValidator>
        <li>Last name</li>
        <li><asp:TextBox runat="server" class="text_input" id="txtLastName"/></li>
        <asp:RequiredFieldValidator ID="validatorLastname" runat="server" ErrorMessage="*" ControlToValidate="txtLastName"></asp:RequiredFieldValidator>
    </ul>

    <ul>
        <li>CNIC</li>
        <li><asp:TextBox runat="server" class="text_input" id="txtCNIC"/></li>
        <asp:RequiredFieldValidator ID="validatorCNIC" runat="server" ErrorMessage="*" ControlToValidate="txtCNIC"></asp:RequiredFieldValidator>
        <li>Blood Group</li>
        <li><asp:DropDownList runat="server" class="text_input" id="ddlBloodGroup">
        <asp:ListItem>A+</asp:ListItem>
        <asp:ListItem>B+</asp:ListItem>
        <asp:ListItem>AB+</asp:ListItem>
        <asp:ListItem>A-</asp:ListItem>
        <asp:ListItem>B-</asp:ListItem>
        <asp:ListItem>AB-</asp:ListItem>
        <asp:ListItem>O+</asp:ListItem>
        <asp:ListItem>O-</asp:ListItem>
        </asp:DropDownList>
        </li>
    </ul>

    <ul>
        <li>Mobile</li>
        <li><asp:TextBox runat="server" class="text_input" id="txtMobile"/></li>
        <asp:RequiredFieldValidator ID="validatorMobile" runat="server" ErrorMessage="*" ControlToValidate="txtMobile"></asp:RequiredFieldValidator>
        <li>Phone</li>
        <li><asp:TextBox runat="server" class="text_input" id="txtPhone"/></li>
    </ul>

    <ul>


    </ul>

    <ul>
        <li>E-Mail</li>
        <li><asp:TextBox runat="server" class="text_input" id="txtEmail"/></li>
        <asp:RegularExpressionValidator ID="valEmail" ControlToValidate="txtEmail" runat="server" ErrorMessage="*" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*">*</asp:RegularExpressionValidator>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
            <li>Maritial Status</li>
            <li>
            <asp:RadioButton ID="rbtnMarried" AutoPostBack="true" runat="server" oncheckedchanged="rbtnMarried_CheckedChanged"/>Married
            <asp:RadioButton ID="rbtnUnmarried" AutoPostBack="true" runat="server" 
                    oncheckedchanged="rbtnUnmarried_CheckedChanged"/>Unmarried
            </li>
            </ContentTemplate>
        </asp:UpdatePanel>
    </ul>

    <ul>
        <li>Permanant Address</li>
        <li><asp:TextBox runat="server" class="text_input" id="txtPermanantAddress"/></li>
        <asp:RequiredFieldValidator ID="validatorPAddress" runat="server" ErrorMessage="*" ControlToValidate="txtPermanantAddress"></asp:RequiredFieldValidator>
        <li>Temporary Address</li>
        <li><asp:TextBox runat="server" class="text_input" id="txtTemporaryAddress"/></li>
        <asp:RequiredFieldValidator ID="validatorTAddress" runat="server" ErrorMessage="*" ControlToValidate="txtTemporaryAddress"></asp:RequiredFieldValidator>
    </ul>


    <ul>
        <li>Salary</li>
        <li><asp:TextBox runat="server" class="text_input" id="txtSalary"/></li>
        <asp:RequiredFieldValidator ID="validatorSalary" runat="server" ErrorMessage="*" ControlToValidate="txtSalary"></asp:RequiredFieldValidator>
        <li>Joining Date</li>

             <li>
        <%--<ew:calendarpopup ID="calJoiningDate" runat="server"></ew:calendarpopup>--%>
                  <asp:TextBox ID="CalJoiningDate1" runat="server" CssClass="text_input"></asp:TextBox>
                  <cc1:CalendarExtender ID="CalJoiningDate1_CalendarExtender" runat="server" 
                       Enabled="True" TargetControlID="CalJoiningDate1">
                  </cc1:CalendarExtender>
        </li>


    </ul>
    <ul>
        <li>Job Area</li>
        <li><asp:DropDownList runat="server" class="text_input" id="ddlJobArea"/></li>
        <li>Desigantion</li>
        <li><asp:DropDownList runat="server" class="text_input" id="ddlDesignation"/></li>
    </ul>

    <asp:UpdatePanel ID="updatePnl" runat="server">
    <ContentTemplate>    
    <div>
    <ul>
        <li style="margin-top:20px; margin-bottom:15px"><input type="image" src="images/img_jobHistory.png"  /></li>
    </ul>

    <ul>
    <li>Company</li>
   <%--<asp:DropDownList runat="server" class="text_input" id="ddlCompany" 
              onselectedindexchanged="ddlCompany_SelectedIndexChanged"/>--%>
          <li><asp:TextBox ID="CompanyNames" runat="server" CssClass="text_input"></asp:TextBox> 
               <cc1:AutoCompleteExtender ID="CompanyNames_AutoCompleteExtender" runat="server" 
                    DelimiterCharacters="" Enabled="True" ServicePath="getCompanies.asmx" ServiceMethod="getCompaniesMethod" MinimumPrefixLength="1" 
                    TargetControlID="CompanyNames" UseContextKey="True">
               </cc1:AutoCompleteExtender>
               <li>Job Duration</li>
               <li>
                    <asp:TextBox ID="txtJobDuration" runat="server" class="text_input" />
               </li>
               <asp:RequiredFieldValidator ID="validatorJobDuration" runat="server" 
                    ControlToValidate="txtJobDuration" ErrorMessage="*" 
                    ValidationGroup="jobHistory"></asp:RequiredFieldValidator>
         </li>
    </ul>

    <ul>
    <li>Job Area</li>
    <li><asp:DropDownList runat="server" class="text_input" id="ddlJobHistJobArea"/></li>
    <li>Designation</li>
    <li><asp:DropDownList runat="server" class="text_input" id="ddlJobHistoryDesignation"/></li>
    </ul>

    <ul>
    <li>Last Drawn Salary</li>
    <li><asp:TextBox runat="server" class="text_input" id="txtLastDrawnSalary"/>
         </li>
        <asp:RequiredFieldValidator ID="validatorLastDrawnSalary" runat="server" ValidationGroup="jobHistory" ErrorMessage="*" ControlToValidate="txtLastDrawnSalary"></asp:RequiredFieldValidator>
    </ul>

    <ul>
        <li style="margin-left:160px">
            <asp:ImageButton src="images/btn_Add.png" runat="server" ID="btnAddJobHistory" onclick="btnAddJobHistory_Click" CausesValidation="True" ValidationGroup="jobHistory"/>
            <asp:ImageButton src="images/btnReset.png" runat="server" ID="btnResetJH" CausesValidation="False" onclick="btnResetJH_Click"/>
        </li>
    </ul>

    <ul style="margin-left:30px">
    <asp:GridView ID="grdJobHistory" runat="server" AutoGenerateColumns="False" Width="798px" 
            AllowPaging="True" 
        onpageindexchanging="grdJobHistory_PageIndexChanging" 
        onrowcommand="grdJobHistory_RowCommand" 
            onrowdeleting="grdJobHistory_RowDeleting" 
            onrowediting="grdJobHistory_RowEditing" Font-Bold="True" 
            Font-Names="Calibri" Font-Size="Medium" ForeColor="White" PageSize="5">
            <Columns>
                <asp:BoundField DataField="EmployeeExperianceId" 
                    HeaderText="EmployeeExperianceId" />
                <asp:BoundField HeaderText="Company" DataField="CompanyName" ReadOnly="True" >
                    <ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif" 
                        Font-Size="Small" ForeColor="#3F4A53" />
                </asp:BoundField>
                <asp:BoundField DataField="JobAreaName" HeaderText="Job Area" >
                    <ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif" 
                        Font-Size="Smaller" ForeColor="#3F4A53" />
                </asp:BoundField>
                <asp:BoundField HeaderText="Designation" DataField="DesignationName" 
                    ReadOnly="True" >
                    <ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif" 
                        Font-Size="Small" ForeColor="#3F4A53" />
                </asp:BoundField>
                <asp:BoundField HeaderText="Experiance Duration" DataField="ExperianceDuration" 
                    ReadOnly="True" >
                    <ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif" 
                        Font-Size="Small" ForeColor="#3F4A53" />
                </asp:BoundField>
                <asp:BoundField HeaderText="Salary" DataField="LastDrawnSalary" ReadOnly="True" >
                    <ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif" 
                        Font-Size="Small" ForeColor="#3F4A53" />
                </asp:BoundField>
                <asp:TemplateField AccessibleHeaderText="Edit" HeaderText="Edit">
                    <ItemTemplate>
                        <asp:ImageButton ID="imgBtnEdit" runat="server" ImageUrl="images/updateIcon.png" CausesValidation="False" CommandName="Edit" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "EmployeeExperianceId") %>'/>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField AccessibleHeaderText="Delete" HeaderText="Delete">
                    <ItemTemplate>
                        <asp:ImageButton ID="imgBtnDelete" runat="server" ImageUrl="images/deleteIcon.png" CausesValidation="False" CommandName="Delete" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "EmployeeExperianceId") %>' OnClientClick="return confirm('Are you sure you want to delete this record...');"/>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
            <HeaderStyle BackColor="#5D92B9" BorderStyle="None" />
            <AlternatingRowStyle BackColor="#AAAAAA" />
        </asp:GridView>
    </ul>

    </div>

    <div>
    <ul>
        <li style="margin-top:20px; margin-bottom:15px"><input type="image" src="images/img_skillDetail.png"  /></li>
    </ul>

    <ul>
        <li>Skill</li>
        <!--<li><asp:DropDownList runat="server" class="text_input" id="ddlSkill"/></li>-->
        <li>
             <asp:TextBox ID="SkillAutoComplete" runat="server" CssClass="text_input"></asp:TextBox>
             <cc1:AutoCompleteExtender ID="SkillAutoComplete_AutoCompleteExtender" 
                  runat="server" DelimiterCharacters="" Enabled="True" ServicePath="getSkills.asmx" ServiceMethod="getAllSkills" MinimumPrefixLength="1" 
                  TargetControlID="SkillAutoComplete">
             </cc1:AutoCompleteExtender>
         </li>
        <li>Skill Detail</li>
        <li><asp:TextBox runat="server" class="text_input" id="txtSkillDetail"/></li>
        <asp:RequiredFieldValidator ID="validatorSkillDetail" runat="server" ValidationGroup="skill" ErrorMessage="*" ControlToValidate="txtSkillDetail"></asp:RequiredFieldValidator>
    </ul>    

    <ul>
        <li style="margin-left:160px">
            <asp:ImageButton src="images/btn_Add.png" runat="server" ID="btnAddSkill" CausesValidation="True" ValidationGroup="skill" onclick="btnAddSkill_Click"/>
            <asp:ImageButton src="images/btnReset.png" runat="server" ID="btnResetSkill" CausesValidation="False" onclick="btnResetSkill_Click"/>
        </li>
    </ul>    

    <ul style="margin-left:30px">
    <asp:GridView ID="grdSkill" runat="server" AutoGenerateColumns="False" Width="798px" 
            AllowPaging="True" 
        onpageindexchanging="grdSkill_PageIndexChanging" 
        onrowcommand="grdSkill_RowCommand" 
            onrowdeleting="grdSkill_RowDeleting" 
            onrowediting="grdSkill_RowEditing" Font-Bold="True" 
            Font-Names="Calibri" Font-Size="Medium" ForeColor="White" PageSize="5">
            <Columns>
                <asp:BoundField HeaderText="EmployeeSkillId" DataField="EmployeeSkillId" >
                </asp:BoundField>
                <asp:BoundField DataField="SkillName" HeaderText="Skill Name" ReadOnly="True">
                    <ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif" 
                        Font-Size="Small" ForeColor="#3F4A53" />
                </asp:BoundField>
                <asp:BoundField HeaderText="Skill Detail" DataField="SkillDetail" 
                    ReadOnly="True" >
                    <ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif" 
                        Font-Size="Small" ForeColor="#3F4A53" />
                </asp:BoundField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:ImageButton ID="imgBtnEdit" runat="server" ImageUrl="images/updateIcon.png" CausesValidation="false" CommandName="Edit" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "EmployeeSkillId") %>'/>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:ImageButton ID="imgBtnDelete" runat="server" ImageUrl="images/deleteIcon.png" CommandName="Delete" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "EmployeeSkillId") %>' OnClientClick="return confirm('Are you sure you want to delete this record...');"/>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
            <HeaderStyle BackColor="#5D92B9" BorderStyle="None" />
            <AlternatingRowStyle BackColor="#AAAAAA" />
        </asp:GridView>
    </ul>
    </div>

    <div>       
    <ul>
        <li style="margin-top:20px; margin-left:20px; margin-bottom:15px"><input type="image" src="images/img_qualificationDetail.png"  /></li>
    </ul>    

    <ul>
        <li>Course</li>
        <li><asp:DropDownList runat="server" class="text_input" id="ddlCourse"/></li>
        <li>Institution</li>
        <li><asp:TextBox runat="server" class="text_input" id="txtInstitution"/></li>
        <asp:RequiredFieldValidator ID="validatorInsitution" runat="server" ValidationGroup="course" ErrorMessage="*" ControlToValidate="txtInstitution"></asp:RequiredFieldValidator>
    </ul>        

    <ul>
        <li>Duration</li>
        <li><asp:TextBox runat="server" class="text_input" id="txtCourseDuration"/></li>
        <asp:RequiredFieldValidator ID="validatorDuration" runat="server" ValidationGroup="course" ErrorMessage="*" ControlToValidate="txtCourseDuration"></asp:RequiredFieldValidator>
        <li>Passing Year</li>
        <li>
             <asp:TextBox ID="calPassingYear1" runat="server" CssClass="text_input"></asp:TextBox>

        </li>
        <!--<li><ew:CalendarPopup ID="calPassingYear" runat="server"></ew:CalendarPopup></li>-->
    </ul>        

    <ul>
        <li>Marks/Percentage/GPA</li>
        <li><asp:TextBox runat="server" class="text_input" id="txtMarksPercentage"/></li>
        <asp:RequiredFieldValidator ID="validatorMarks" runat="server" ValidationGroup="course" ErrorMessage="*" ControlToValidate="txtMarksPercentage"></asp:RequiredFieldValidator>
        <li style="margin-left:160px">
        <asp:ImageButton src="images/btn_Add.png" runat="server" ID="btnAddCourse" CausesValidation="True" onclick="btnAddCourse_Click" ValidationGroup="course"/>
        <asp:ImageButton src="images/btnReset.png" runat="server" ID="btnResetCourse" CausesValidation="False" onclick="btnResetCourse_Click" />
        </li>
    </ul>        

    <ul style="margin-left:30px">
    <asp:GridView ID="grdCourse" runat="server" AutoGenerateColumns="False" Width="798px" 
            AllowPaging="True" 
        onpageindexchanging="grdCourse_PageIndexChanging" 
        onrowcommand="grdCourse_RowCommand" 
            onrowdeleting="grdCourse_RowDeleting" 
            onrowediting="grdCourse_RowEditing" Font-Bold="True" 
            Font-Names="Calibri" Font-Size="Medium" ForeColor="White" PageSize="5">
            <Columns>
                <asp:BoundField DataField="EmployeeQualificationId" 
                    HeaderText="EmployeeQualificationId" />
                <asp:BoundField HeaderText="Course" DataField="CourseTitle" ReadOnly="True" >
                    <ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif" 
                        Font-Size="Small" ForeColor="#3F4A53" />
                </asp:BoundField>
                <asp:BoundField HeaderText="Institution" DataField="InstitutionName" 
                    ReadOnly="True" >
                    <ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif" 
                        Font-Size="Small" ForeColor="#3F4A53" />
                </asp:BoundField>
                <asp:BoundField HeaderText="Duration" DataField="Duration" 
                    ReadOnly="True" >
                    <ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif" 
                        Font-Size="Small" ForeColor="#3F4A53" />
                </asp:BoundField>
                <asp:BoundField HeaderText="Passing Year" DataField="YearOfPassing" 
                    ReadOnly="True" >
                    <ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif" 
                        Font-Size="Small" ForeColor="#3F4A53" />
                </asp:BoundField>
                <asp:BoundField HeaderText="Marks/Percentage/GPA" DataField="MarksPercentage" 
                    ReadOnly="True" >
                    <ItemStyle Font-Names="Calibri,Verdana,Arial,Helvetica,sans-serif" 
                        Font-Size="Small" ForeColor="#3F4A53" />
                </asp:BoundField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:ImageButton ID="imgBtnEdit" runat="server" ImageUrl="images/updateIcon.png" CausesValidation="false" CommandName="Edit" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "EmployeeQualificationId") %>'/>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:ImageButton ID="imgBtnDelete" runat="server" ImageUrl="images/deleteIcon.png" CommandName="Delete" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "EmployeeQualificationId") %>' OnClientClick="return confirm('Are you sure you want to delete this record...');"/>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
            <HeaderStyle BackColor="#5D92B9" BorderStyle="None" />
            <AlternatingRowStyle BackColor="#AAAAAA" />
        </asp:GridView>
    </ul>
    </div>
    </ContentTemplate>
      </asp:UpdatePanel>        
    <ul>
       <li style="margin-left:90px; margin-bottom:10px;">
       <asp:ImageButton ID="btnSubmit" AlternateText="submit button" runat="server" src="images/btn_Submit.png" onclick="btnSubmit_Click"/>
       </li>
    </ul>
</div>
            <!--CLOSE CONTENT DIV-->

</asp:Content>

例如:

当我尝试添加一些像<asp:testBox id="txtBox" runat="server"/>这样的asp.net服务器端控件时,后面的代码无法访问它。错误:txtBox未在当前Context中定义...
我做错了什么?

27 个答案:

答案 0 :(得分:20)

当我通过在解决方案中创建一个asp.net应用程序项目并复制aspx&amp;而将网站移动到主要解决方案时,我遇到了这个问题。 aspx.cs文件结束。我通过右键单击项目并转换为Web应用程序解决了这个问题。这创建了必要的designer.cs文件,其中包含aspx页面上asp对象的代码。

答案 1 :(得分:6)

尤其是视觉工作室中的旧内容会发生这种情况。

在1.1中(在“部分类”之前),您总是可以在代码隐藏中看到控件声明。

在更高版本中,他们将其移动到cs.designer文件中(所以现在你有了部分类 - 部分在.cs.designer文件中,并且部分在.cs文件中。)

如果您正在使用visual studio“project”,那么您可以打开cs.designer文件,然后添加您的控件。只要看看所有其他控件是如何声明的 - 这就是你所要做的。

如果您正在使用视觉工作室“网站”,那么您运气不佳。无法查看或编辑cs.designer文件,因为在网站编译之前它不存在。

答案 2 :(得分:5)

检查以确保页面的designer.cs文件包含在项目中。右键单击它,看看是否有“包含在项目中”的选项。

答案 3 :(得分:4)

如果您无法在.cs页面中找到该控件,只需在designer.cs页面中添加控件引用并尝试再次访问它。

我相信它会100%。这就是我学到的东西

答案 4 :(得分:4)

刚刚发现这个问题,我发现它已经很老了,但我想我有一个潜在的答案。设计人员的部分类的代码隐藏可能不包含在项目中 - 有时会在重命名和/或复制文件时发生。

转到您的页面(我们称之为Test.aspx)并在解决方案资源管理器中展开其树 - 您是否看到名为Test.aspx.cs Test.aspx.designer.cs的文件?如果没有,请在解决方案资源管理器的顶部找一个标记为显示所有文件的按钮。单击它 - 如果您现在看到.designer.cs文件,请右键单击它并选择“包含在项目中”。在我遇到这个问题后,这让我再次前进。

答案 5 :(得分:3)

您是否重命名了项目文件?如果有,请记住重命名ASPX页面顶部的Inherits。

答案 6 :(得分:3)

如果您在VS2013的网站中遇到此问题(而不是Web应用程序)并且有多个aspx文件共享代码隐藏,那么您需要确保所有的aspx文件完全相同控件集合。

在以前版本的Visual Studio中,这不是一个问题,但看起来VS2013已经收紧了。

我希望这对某人有所帮助 - 感谢谢尔盖上面的评论我发现了它。

答案 7 :(得分:2)

首先

  • 确保为此分配了ID 控制

如果这没有帮助

  • 关闭您添加的页面 控制
  • 重建/编译项目 并再次打开页面

答案 8 :(得分:2)

以下是我遇到类似问题时遇到的故障排除列表。

  1. 确保您在后面的代码中使用的ID实际上是在标记中声明的
  2. 确保这些元素具有'runat =“server”'
  3. 如果您遇到特定控件的问题,请尝试在页面顶部附近创建一个控件,如果这也不起作用,那就是代码生成问题
  4. 如果您的问题是3.,请暂时删除控件的标记以及后面代码中对它们的任何引用,即使其成功构建。如果打开designer.cs文件并执行重建,请将其关闭。之后尝试重新添加基本控件(在步骤1和2之后)并查看它是否显示(应该)。然后根据需要重新添加标记,您应该会发现代码生成再次正常工作。

答案 9 :(得分:2)

使用CodeBehind属性而不是Page tag的CodeFile属性。

例如:

 <%@ Control Language="C#" AutoEventWireup="true" **CodeBehind**="Results.ascx.cs" Inherits="MyApp.Results" %>

答案 10 :(得分:2)

在VS2010的一个网站项目中发生了这种情况,但由于我是一个更大的团队的一部分,我没有像Domenic建议的那样选择转换为Web应用程序。

事实证明,这是因为我已将ASPX文件的默认编辑器切换为&#34; HTML编辑器&#34;而不是&#34; Web表单编辑器&#34;。我这样做是因为每当我打开一个ASPX文件时,intellisense就会杀死我的电脑。当我右键点击此页面时,打开...&#34; &#34; Web表单编辑器&#34;,并再次添加控件,它工作得很好,现在可以在代码隐藏文件中使用。

答案 11 :(得分:1)

在其他部分类

中手动输入声明

答案 12 :(得分:1)

将空的.aspx.designer.cs文件添加到您的项目中

要让.aspx页面控件的visual studio自动创建声明,您可以在项目中添加一个空的 YourWebPageName.aspx.designer.cs 文件。

如果在外部添加到项目中,您可以通过右键单击项目,选择 new item 并将新的.cs文件包含到项目中,将其添加到项目中。

然后,只要您在设计编辑器中对YourWebPageName页面进行微小修改,Visual Studio就会使用声明填充您的空.cs文件。

答案 13 :(得分:1)

我有类似的问题。当我尝试重命名aspx文件时,我遇到了这个问题。在我的例子中,当我将aspx文件重命名为ModifyRecords时,类名未从UpdateRecords更新为ModifyRecords。因此,没有任何ASP.NET控件可以从后面的代码中访问。

重命名前的代码:

public partial class UpdateRecords : System.Web.UI.Page

重命名后代码隐藏:

public partial class ModifyRecords : System.Web.UI.Page

如果您尝试重命名aspx文件或从不同文件复制粘贴,请确保更新类名称。

答案 14 :(得分:1)

可能的原因:

  • id mismatch。
  • runat =“server”在.aspx文件的控件中不存在。

除了纠正上述内容之外,我找到的解决方案是重建项目:

您需要注意的另一件事是,在重建之前,请关闭设计器文件。

答案 15 :(得分:1)

当2个ASP页面使用相同的Code Behind文件时,我遇到了同样的问题(它是Visual Studio 2013中的ASP.NET Web站点项目,而不是ASP.NET Web应用程序)。我已经通过更改它来为每个页面使用不同的Code Behind文件解决了这个问题。

答案 16 :(得分:0)

如果您尝试从后端的内置方法访问标记,请确保不要将此方法设为静态 - 否则您将无法访问这些标记...

<p #id="myTag" runat="server">...</p>

private static void myMethod(){
    myTag.InnerText = "Hello" //You will not have access to this tag
}

private void myMethod(){
    myTag.InnerText = "Hello"; //You have access to tags
}

答案 17 :(得分:0)

面临类似问题,因为控件位于: &#34; LoginView&#34;或者&#34; AnonymousTemplate&#34;和Viewstatemode已禁用

通过将Asp控件移到这些标记元素之外来解决

答案 18 :(得分:0)

我有同样的问题。我通过删除&#34; PublicKeyToken = 31bf3856ad364e35&#34;找到了解决方案。     命名空间=&#34;的System.Web.UI&#34;的TagPrefix =&#34; ASP&#34; %GT; &#34;来自aspx页面,它现在正常工作。

答案 19 :(得分:0)

我过去也遇到过类似的问题。正如您所提到的那样,该项目以前由其他人构建,因此必须使用基于VB的编码进行编码,您可以在web.config编译详细信息中进行检查。尝试将aspx页面内容复制到新创建的C#aspx页面上并粘贴代码,它将起作用。

答案 20 :(得分:0)

问题是你可能有多个aspx文件,其中页面指令中的代码文件指向相同的代码隐藏文件。 它期望在相同代码后面的所有aspx文件中存在相同的控件,从而引发编译错误。

如果您仍然遇到与上述相同的清理问题,请检查设计器页面并重新生成。

答案 21 :(得分:0)

确保page指令中的codeBehind属性引用您调用控件的cs文件

答案 22 :(得分:0)

protected global::System.Web.UI.WebControls.CheckBox CheckBoxName ;

将您的控件ID名称添加到designer.cs,然后它将在您的cs文件中提供。

答案 23 :(得分:0)

一个非常老的问题,但是我今天遇到了这个问题,最终找到了一个我在这里没有提到的解决方案。所以,我会分享。

页面中有三个文件:ASPX,ASPX.CS和ASPX.Designer.CS

直接编辑ASPX的HTML /标记时(如我更喜欢),它不会自动更新设计器。这就是为什么它没有出现在智能感知中(至少对我而言)。为了使IDE更新设计器,您需要在Visual Studio中打开ASPX页面(并使其成为焦点文件)。单击“查看”菜单,然后选择“设计器”(或按Shift + F7); IDE将向您显示设计视图;右键单击设计区域,然后从上下文菜单中选择“刷新”;保存文件;从“查看”菜单中选择“标记”(或再次按Shift + F7);并检查设计器文件以查看 现在,您添加的控件已存在于设计器中。

也许有一种更简单的方法,但是这对我来说是可行的,它使我能够通过手动添加到HTML中的代码访问控件。

答案 24 :(得分:0)

我通过强制VS重新生成我的设计器文件来解决此问题。为了那个原因 1.我删除了designer.cs文件。 2.复制了另一页的设计器文件。 3.重命名设计器文件和其中的部分类,以使其与类后面的页面代码名称匹配。 4.从设计器类主体中删除所有内容。 5.从aspx标记页面剪切所有控件。 5.保存了aspx页面。 6.粘贴回控件并再次保存文件。 这使VS重新创建了空白设计器文件中的所有控件。希望对您有用。

答案 25 :(得分:0)

确保您的控件完全应该具有生成的代码隐藏引用!例如,如果它在列表模板中,则需要在项目绑定事件处理程序中查找对其的引用。

这让我发狂,因为我有两个具有相同ID的控件,一个在页面级别,而另一个在模板中。

我认为我正在使用的生成引用是模板中的引用,但我无法弄清为什么模板中新添加的控件未生成引用。

答案 26 :(得分:0)

这么老的问题, 但是,如果它有助于尝试将控件移到任何其他控件之外,因为访问会有所不同。