【发布时间】:2021-03-03 23:31:03
【问题描述】:
我想将 ApplicationContext 传递给静态方法。我尝试了许多不同的方法,但没有任何效果。 我在没有静态的情况下尝试了它等等,上下文总是返回 null。
这是我写的原始代码,但它给出了错误“非静态字段、方法或属性需要对象引用”
public class SelectItemHelper
{
private readonly ApplicationContext db;
public SelectItemHelper(ApplicationContext context)
{
db = context;
}
public static IEnumerable<SelectListItem> GetDeveloper()
{
var developer = db.Games.ToList();
IList<SelectListItem> items = new List<SelectListItem>();
foreach (var dev in developer)
{
items.Add(new SelectListItem {Text = dev.Article, Value = dev.Article });
}
return items;
}
}
【问题讨论】:
-
你不能从静态方法访问实例成员!
-
我明白了。也许还有其他方法?如果我让它不是静态的,那我怎么能称之为剃须刀页面呢?如果我创建一个类的实例,那么我将需要添加一个空的构造函数。它仍然返回 null
-
您可以将其放入服务中,然后将其 inject 在您的页面/视图中,或者将其集成为您的自定义页面的一部分,最近我我在这里回答了一个类似的问题(关于自定义视图)stackoverflow.com/questions/66428656/…
标签: c# asp.net-core asp.net-core-mvc