无法在 Razor Pages 代码隐藏 class 中使用注入 class
Can't use injected class in Razor Pages code-behind class
我有一个只显示电影列表的简单页面。我将 DbContext
注入我的页面:
List.cshtml
@inject MovieContext Db
并尝试在代码隐藏中使用它 class:
List.cshtml.cs
public class ListModel : PageModel
{
public IList<Movie> Movies { get; set; }
public async Task OnGetAsync()
{
Movies = await Db.Movies.ToListAsync();
}
}
但是,我收到错误消息:
The name 'Db' does not exist in the current context
我也试过用 [Inject]
属性注入上下文,但这也不起作用:
public class ListModel : PageModel
{
public IList<Movie> Movies { get; set; }
// Inject context
[Inject] public MovieContext Db { get;set; }
public async Task OnGetAsync()
{
Movies = await Db.Movies.ToListAsync();
}
}
我收到以下错误:
NullReferenceException: Object reference not set to an instance of an object.
只需要在后台代码中直接使用依赖注入class,如下图
public class ListModel : PageModel
{
private readonly MovieContext _context;
public ListModel(MovieContext context)
{
_context = context;
}
public IList<Movie> Movies { get; set; }
public async Task OnGetAsync()
{
Movies = await _context.Movies.ToListAsync();
}
}
详情请见doc.
我有一个只显示电影列表的简单页面。我将 DbContext
注入我的页面:
List.cshtml
@inject MovieContext Db
并尝试在代码隐藏中使用它 class:
List.cshtml.cs
public class ListModel : PageModel
{
public IList<Movie> Movies { get; set; }
public async Task OnGetAsync()
{
Movies = await Db.Movies.ToListAsync();
}
}
但是,我收到错误消息:
The name 'Db' does not exist in the current context
我也试过用 [Inject]
属性注入上下文,但这也不起作用:
public class ListModel : PageModel
{
public IList<Movie> Movies { get; set; }
// Inject context
[Inject] public MovieContext Db { get;set; }
public async Task OnGetAsync()
{
Movies = await Db.Movies.ToListAsync();
}
}
我收到以下错误:
NullReferenceException: Object reference not set to an instance of an object.
只需要在后台代码中直接使用依赖注入class,如下图
public class ListModel : PageModel
{
private readonly MovieContext _context;
public ListModel(MovieContext context)
{
_context = context;
}
public IList<Movie> Movies { get; set; }
public async Task OnGetAsync()
{
Movies = await _context.Movies.ToListAsync();
}
}
详情请见doc.