.aspx codefile页面无法识别页面上的控件

时间:2011-09-09 11:14:44

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

我在网站上收到了编译错误。在aspx文件中声明了一个转发器,如下所示:

<%@ 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,这是否适用,还是有更好的方法?在这种情况下,设计文件是否必要?

2 个答案:

答案 0 :(得分:2)

如果您所说的是您没有designer.cs的内容,请将其添加到designer.cs: protected global::System.Web.UI.WebControls.Repeater rptMyRepeater;
如果您根本没有designer.cs文件,请将其添加到aspx.cs -i.e codefile-并且它应该可以工作。

这简直就是设计师文件应该做的事情,控件和我看到的类变量没什么不同。

答案 1 :(得分:0)

你可以检查几件事:

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