【问题标题】:aspx c# code behind not recognizing controls无法识别控件背后的aspx c#代码
【发布时间】:2013-09-16 15:10:37
【问题描述】:

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

我该怎么做?

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

【问题讨论】:

  • 如果您在 Visual Studio 中右键单击 .aspx 文件,您会获得“转换为 Web 应用程序”选项吗?如果是这样试试。还要检查页面指令中的命名空间是否与后面代码中的类名匹配。
  • 不,我没有那个选项。虽然它是一个网站而不是一个应用程序。
  • 当我右键单击页面并单击“查看组件设计器”选项时,它给了我一个错误页面“设计器必须创建一个 CMS.UIControls.TemplatePage 类型的实例,但它不能因为类型被声明为抽象的。”
  • 你说你不能访问designer.cs文件是什么意思?它在文件系统中吗?

标签: c# asp.net kentico


【解决方案1】:

尝试将runat="server" 添加到您的ID 标签。

这是一个例子。

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

【讨论】:

    【解决方案2】:

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

    • 确保所有控件都具有“runat”属性:runat="server"。我不是想侮辱你的智商,但这是一件容易忘记的事情(就像我以前做过的那样),没有这个控件将无法从代码隐藏中识别

    • 如果是模板文件,是否确定引用它的代码隐藏是模板文件的代码隐藏,因为其他页面的代码隐藏将无法在模板没有你告诉他们它在哪里。

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

    【讨论】:

    • 我都检查过了。
    • 您对这个问题的新评论:如果您的类是抽象的,您是否尝试将其包装在非抽象类中? (来源:stackoverflow.com/questions/481305
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    相关资源
    最近更新 更多