【问题标题】:.aspx codefile page unable to recognise control on the page.aspx 代码文件页面无法识别页面上的控件
【发布时间】:2011-09-09 11:14:44
【问题描述】:

我在网站上遇到编译错误。在aspx文件中有一个repeater声明如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="MyPage.aspx.cs"
        Inherits="MyClass" %>

<asp:Repeater ID="rptMyRepeater" runat="server">
    <ItemTemplate>
        <tr>
            <td>
…

并且类定义如下:

public partial class MyClass : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            rptMyRepeater.DataSource = GetMyDataSource();
            rptMyRepeater.DataBind();
        }
    }
}

我遇到的问题是 rptMyRepeater 无法识别。请注意,我从另一个项目中复制了这些文件,因此没有 Designer.cs 文件。

我遇到了this 问题,这意味着“转换为 Web 应用程序”可以解决问题。当我引用 CodeFile 而不是 CodeBehind 时,这是否适用,还是有更好的方法?在这种情况下是否需要设计器文件?

【问题讨论】:

标签: asp.net asp.net-3.5 code-behind


【解决方案1】:

如果你的意思是你没有 Designer.cs 的 内容,请将其添加到 Designer.cs: protected global::System.Web.UI.WebControls.Repeater rptMyRepeater;
如果您根本没有 Designer.cs 文件,请将其添加到 aspx.cs -即 codefile- 中,它应该可以工作。

这相当于设计器文件应该做的事情,正如我所见,控件与类变量没有太大区别。

【讨论】:

    【解决方案2】:

    您可以检查几件事:

    • 确保您的 .cs 文件在属性中设置为 编译
    • 尝试使用 CodeBehind 而不是 CodeFile
    • 如果您的页面类位于命名空间内,请确保它在 aspx 文件中是完全限定的
    • 如果您使用的是 Web 应用程序项目,请右键单击并转换为 Web 应用程序

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-06
      • 1970-01-01
      相关资源
      最近更新 更多