无法访问非静态字段" Repeater"在静态环境中

时间:2014-10-08 19:04:21

标签: html .net static repeater httpcontext

我在一个Web表单项目中有一个网页,我使用了一个Repeater;这是页面上的代码:

<asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate>
        <div class="Event">
            <div class="">
                <h3><a href="<%# DataBinder.Eval(Container.DataItem, "Url") %>"><%# DataBinder.Eval(Container.DataItem, "Name") %></a></h3>
                <span><%# DataBinder.Eval(Container.DataItem, "Location") %>. <%# DataBinder.Eval(Container.DataItem, "DateDisplay") %></span>
                &nbsp;
            </div>

        </div>
    </ItemTemplate>
</asp:Repeater>

以及这里的代码隐藏:

    namespace TestWebForms
{
    public partial class EventSearchResults : System.Web.UI.Page
    {
        public string searchTerms { get; set; }

        protected void Page_Load(object sender, EventArgs e)
        {
            var query = HttpContext.Current.Request.QueryString;

            var searchTerms = String.IsNullOrEmpty(query["q"]) ? String.Empty : query["q"]; 

            ArrayList values = new ArrayList();

            values.Add(new Event()
            {
                Name = "Class of 1715 300th Reunion",
                Location = "Cambridge, MA",
                DateDisplay = "May 20th 2015",
                Url = "#"
            });
            values.Add(new Event()
            {
                Name = "Symposium on Proper Cat Petting Techniques",
                Location = "Boston, MA",
                DateDisplay = "December 25th 2014",
                Url = "#"
            });
            values.Add(new Event()
            {
                Name = "Puppies Everywhere!!!",
                Location = "Cambridge, MA",
                DateDisplay = "November 12th 2014",
                Url = "#"
            });

            Repeater1.DataSource = values;
            Repeater1.DataBind();

        }
    }
}

工作正常。

然后我将所有内容复制并粘贴到新项目中的文件中(长篇大论,但基本上我需要文件存在于项目2中,但我无法在项目2中查看该站点,因此我创建了该页面我需要在项目1中查看它,然后在完成后将其复制到项目2中

文件完全相同(除了网页的命名空间)。但是转发器在项目2中没有工作。在代码隐藏中,Repeater1有一个红色下划线,它表示&#34;无法访问非静态字段&#34; Repeater&#34;在静态环境中。&#34;

我如何解决这个问题,为什么它会在一个项目中起作用而在另一个项目中起作用呢?

1 个答案:

答案 0 :(得分:0)

我想通了,当我把它复制到一个新文件时,创建的新文件是使用&#34; CodeFile&#34;而不是&#34; CodeBehind&#34;。将其更改为CodeBehind修复了问题

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="EventSearchResults.aspx.cs" Inherits="WebAssets_Templates_EventSearchResults" %>