C# 为什么可以';我不能从ASP.NET中的代码隐藏文件中访问方法吗?

C# 为什么可以';我不能从ASP.NET中的代码隐藏文件中访问方法吗?,c#,asp.net,C#,Asp.net,将鼠标悬停在方法签名上时出错: 尝试“无调试启动”后出现错误消息: 我已经检查了所有内容,CodeBehind和Inherits属性,所以真的不知道是什么导致了问题。这是一个教科书上的例子,我做了所有相应的事情,我曾经遇到过这个问题,但不记得我是如何解决的,但它确实有问题,只是重新编写了整个代码,它就工作了。谢谢你的帮助 “当前上下文中不存在GetProducts()名称” 这是my Listings.aspx文件的标题: 我想从代码隐藏文件访问GetProducts()方法 <fo

将鼠标悬停在方法签名上时出错:

尝试“无调试启动”后出现错误消息:

我已经检查了所有内容,CodeBehind和Inherits属性,所以真的不知道是什么导致了问题。这是一个教科书上的例子,我做了所有相应的事情,我曾经遇到过这个问题,但不记得我是如何解决的,但它确实有问题,只是重新编写了整个代码,它就工作了。谢谢你的帮助

“当前上下文中不存在GetProducts()名称”

这是my Listings.aspx文件的标题:

我想从代码隐藏文件访问
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;
        }
}
namespace sportstore.Pages{
公共部分类列表:System.Web.UI.Page{
私有存储库repo=新存储库();
受保护的IEnumerable GetProducts(){
回购产品退货;
}
}

最好的方法是使用repeater控件,将get products的结果绑定到repeater的数据源,然后处理数据绑定事件。repeater控件api有很多示例。它也比使用迭代方法更安全。尝试使用本文

然而,这个论坛有一些链接,可能会为你正在尝试做的事情服务


我终于找到了问题的根源,我不得不将存储库类中的lambda表达式,
public IEnumerable Products{get=>context.Products;}
重新编写为一个常规的
get{return context.Products;}
表达式。但我仍然不明白为什么这会产生巨大的差异

public class Repository {
        private EFDbContext context = new EFDbContext();

        public IEnumerable<Product> Products {
            get {
                return context.Products;
            }
        }
}
公共类存储库{
私有EFDbContext上下文=新EFDbContext();
公共可数产品{
得到{
返回上下文。产品;
}
}
}

您是否尝试将其从
受保护
更改为
公共
?显示的
错误:当前上下文中不存在getproducts名称。我尝试将其设置为公共,但没有成功。我已重新编写了整个项目,甚至添加了
代码文件=“~/Pages/Listing.aspx.cs”
但仍然没有。请向我们显示它显示给您的错误的屏幕截图。还请包括Visual Studio的
错误列表的屏幕截图。