하나의 웹 양식 프로젝트에서 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에서는 사이트를 볼 수 없으므로 페이지 1을 만들었습니다. 프로젝트 1을보고 나서 그것을 끝내면 프로젝트 2로 복사)
파일은 문자 그대로 웹 페이지의 네임 스페이스와 완전히 동일합니다. 그러나 리피터는 프로젝트 2에서 작동하지 않습니다. 코드 숨김에서 Repeater1에는 빨간색 밑줄이 표시되며 "정적 컨텍스트에서"비 정적 필드 "Repeater"에 액세스 할 수 없습니다. "라는 메시지가 표시됩니다.
이 문제를 어떻게 해결할 수 있습니까? 왜 한 프로젝트에서만 작동하지만 다른 프로젝트에서는 작동하지 않습니까?
캔트 생각하는 문제는 코드 숨김에 고정 변경,하지만 당신은 EventSearchResults.aspx.designer.cs 파일을 가지고 그렇다면, 당신은 또한 거기에 네임 스페이스를 변경? – Rhumborl
아니요, 그 파일이 없습니다 –