C# Can';t页面加载中的访问控制
我有一个简单的.ascx文件C# Can';t页面加载中的访问控制,c#,asp.net,web-applications,user-controls,C#,Asp.net,Web Applications,User Controls,我有一个简单的.ascx文件 <%@ Control Language="C#" AutoEventWireup="true" CodeFile="Profile.ascx.cs" Inherits="UserControls_Profile" %> <%@ Register Assembly="RadChart.Net2" Namespace="Telerik.WebControls" TagPrefix="radC" %> &l
<%@ Control Language="C#"
AutoEventWireup="true"
CodeFile="Profile.ascx.cs"
Inherits="UserControls_Profile" %>
<%@ Register Assembly="RadChart.Net2"
Namespace="Telerik.WebControls"
TagPrefix="radC" %>
<div id="testdiv" runat="server"></div>
当我尝试访问该页面时,出现异常:
错误CS0103:名称“testdiv”在当前上下文中不存在
我也尝试过onload,但结果相同 如果您有一个HTML div,则需要添加一个runat属性,如
<div id="testDiv" runat="server">Hello world</div>
你好,世界
但是,像div这样的HTML元素不是ASP.NET控件,将HTML“控件”与ASP.NET混合可能会有问题。你可能更喜欢这样做
<asp:panel id="myPanel" runat="server">Hello world</asp:panel>
你好,世界
更新:还要检查Profile.ascx.designer.cs,它应该由Visual Studio自动生成,以包含“受保护的HtmlControl testdiv”。我假设部分类中缺少这个。我注意到您来自UserControls\u配置文件,这可能会引起混淆。一件事,testdiv是asp.net控件???此控件必须在.cs文件或具有此用户控件的分部类的其他文件中声明为受保护。此外,testdiv在ascx文件中必须有runat=“server”。如果您有这些东西,您可以访问您的控件。只要
不在动态模板中,例如中继器中,这应该是可行的
检查页面模板。它应该包含如下内容:
<div id="testdiv" runat="server">
...
<div>
...
如果div是模板的一部分,则需要使用container.FindControl(“testdiv”)
编辑:有时,Visual Studio没有正确更新Profile.ascx.designer.cs。在这种情况下,仅仅重新保存ASCX文件似乎也不起作用。尝试添加具有其他名称的ASP.NET控件。这通常会触发代码的重新生成。在.cs中,右键单击testdiv上方并选择“转到定义”。如果未找到结果,请在设计模式下打开.ascx并保存文件。这将在ascx中生成testdiv控件的声明。请给出定义testdiv的代码。您可以发布aspx页面代码吗?您使用的是什么语言?asp.net 1.1?2.0+?如果拆下Telerik控件,会发生什么情况?
<div id="testdiv" runat="server">
...
<div>