错误:
尝试“无需调试启动”后出现错误消息:
我已经检查了所有内容,CodeBehind和Inherits属性,所以真的不知道是什么原因导致了这个问题。这是一个教科书的例子,相应地做了一切,我曾经遇到过这个问题,但是不记得我是如何解决它的,但它确实是一个错误的东西,只是重写整个代码而且它有效。谢谢你的帮助。
“GetProducts()名称在当前上下文中不存在”
这是我的Listings.aspx文件的标题:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Listings.aspx.cs" Inherits="SportsStore.Pages.Listings" %>
我想从代码隐藏文件中访问GetProducts()
方法。
<form id="form1" runat="server">
<div>
<% foreach (SportsStore.Models.Product item in GetProducts()) {
...
} %>
</div>
</form>
这是Listings.aspx.cs文件:
namespace SportsStore.Pages {
public partial class Listings : System.Web.UI.Page {
private Repository repo = new Repository();
protected IEnumerable<Product> GetProducts() {
return repo.Products;
}
}
答案 0 :(得分:0)
我终于找到了问题的根源,我不得不将Repository类中的lambda表达式public IEnumerable<Product> Products { get => context.Products; }
重新编写为常规get { return context.Products; }
表达式。但仍然不明白为什么会产生巨大的差异。
public class Repository {
private EFDbContext context = new EFDbContext();
public IEnumerable<Product> Products {
get {
return context.Products;
}
}
}
答案 1 :(得分:-1)
最好的办法是使用转发器控件,并将get产品的结果绑定到转发器的数据源,然后处理数据绑定事件。转发器控制api有很多例子。它也比使用您正在使用的迭代方法更安全一些。尝试使用这篇文章
https://msdn.microsoft.com/en-us/library/x8f2zez5.aspx
但是,这个论坛有一些链接可能有助于您尝试做的事情。
https://forums.asp.net/t/1139381.aspx?what+are+these+special+tags+and+