我在一个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>
</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“。
我该如何解决这个问题,为什么地球上它可以在一个项目中工作,而不是在另一个项目中工作?
想不出为什么会造成这个错误,但你有一个EventSearchResults.aspx.designer.cs文件,如果是的话,你也改变了命名空间在那里? – Rhumborl 2014-10-08 19:12:17
不,我没有那个文件 – 2014-10-08 19:13:05