aspx c#代码隐藏无法识别控件

aspx c#代码隐藏无法识别控件,c#,asp.net,kentico,C#,Asp.net,Kentico,我从VisualStudio创建了一个子模板来管理我的kentico模板。该模板工作正常,只是其中的所有控件都无法从代码隐藏中访问,因为它无法识别。我已经检查了在线解决方案,但没有解决问题。我甚至得到了这个链接 没有任何运气,因为我甚至无法访问myfile.aspx.designer.cs 我该再试试什么 注意:我的控件不在任何面板或其他控件内。就在一个普通分区内。我不熟悉Kentico,但这是我在没有看到您的代码的情况下提出的可能解决方案: 确保所有控件都具有“runat”属性:runat=

我从VisualStudio创建了一个子模板来管理我的kentico模板。该模板工作正常,只是其中的所有控件都无法从代码隐藏中访问,因为它无法识别。我已经检查了在线解决方案,但没有解决问题。我甚至得到了这个链接 没有任何运气,因为我甚至无法访问myfile.aspx.designer.cs

我该再试试什么


注意:我的控件不在任何面板或其他控件内。就在一个普通分区内。

我不熟悉Kentico,但这是我在没有看到您的代码的情况下提出的可能解决方案:

  • 确保所有控件都具有“runat”属性:
    runat=“server”
    。我不是想侮辱你的智慧,但这是一件容易忘记的事情(就像我以前做的那样),没有这一点,控制将无法从代码背后识别出来

  • 如果它是模板文件,您是否确保引用它的codebehind是模板文件的codebehind,因为其他页面的codebehind将无法在模板中找到控件,除非您告诉他们控件在哪里


  • 您对这个问题的新评论是:如果您的类是抽象的,您是否尝试过将其包装在非抽象类中?(来源:stackoverflow.com/questions/481305)

尝试将
runat=“server”
添加到您的id标签中

这里有一个例子

<tr class="headerrow" id="tbrHeader" runat="server">  


如果在Visual Studio中右键单击.aspx文件,是否会获得“转换为web应用程序”选项?如果是这样,试试看。还要检查page指令中的命名空间是否与代码隐藏中的类名匹配。不,我不知道该选项。这是一个网站,但不是一个应用程序。当我右键单击页面并单击“查看组件设计器”选项时,它给了我一个错误页面“设计器必须创建CMS.UIControls.TemplatePage类型的实例,但它不能,因为该类型被声明为抽象。”你说不能访问Designer.cs文件是什么意思?它在文件系统中吗?我已经检查了所有这些。在你对这个问题的新评论中:如果你的类是抽象的,你是否尝试过将它包装在非抽象类中?(来源:)