我有一个以前由其他人建造的项目。当我尝试向页面添加新控件时,我无法在后面的代码中访问它。当我尝试访问它时,会出现一条错误消息,指出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中定义...
我做错了什么?
答案 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)
首先
如果这没有帮助
答案 8 :(得分:2)
以下是我遇到类似问题时遇到的故障排除列表。
如果您的问题是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)
可能的原因:
除了纠正上述内容之外,我找到的解决方案是重建项目:
您需要注意的另一件事是,在重建之前,请关闭设计器文件。
答案 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)
这么老的问题, 但是,如果它有助于尝试将控件移到任何其他控件之外,因为访问会有所不同。