2014-10-08 149 views
1

我在一个Web表单项目中使用Repeater的网页;这是网页上的代码:无法在静态环境中访问非静态字段“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中的网站,所以我创建了页面I需要在项目1中进行查看,然后在完成时将其复制到项目2)

文件字面上完全相同(除网页的命名空间外)。但是中继器不能在项目2中工作。在代码隐藏中,Repeater1有一个红色下划线,并且它表示“无法在静态上下文中访问非静态字段”Repeater“。

我该如何解决这个问题,为什么地球上它可以在一个项目中工作,而不是在另一个项目中工作?

+0

想不出为什么会造成这个错误,但你有一个EventSearchResults.aspx.designer.cs文件,如果是的话,你也改变了命名空间在那里? – Rhumborl 2014-10-08 19:12:17

+0

不,我没有那个文件 – 2014-10-08 19:13:05

回答

0

我想通了,当我将它复制到一个新文件时,创建的新文件使用“CodeFile”而不是“CodeBehind”。它更改为代码隐藏固定的问题

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

你可以通过点击“打勾”来“接受”你自己的答案。这从未解决的问题池中回避了这个问题。 – 2015-06-02 09:41:58

相关问题