Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 等待上下文中出现错误:“等待”;无法通过表达式引用类型";_Asp.net Core_Async Await_Razor Pages - Fatal编程技术网

Asp.net core 等待上下文中出现错误:“等待”;无法通过表达式引用类型";

Asp.net core 等待上下文中出现错误:“等待”;无法通过表达式引用类型";,asp.net-core,async-await,razor-pages,Asp.net Core,Async Await,Razor Pages,基于 我对我的.cs进行了如下编辑: private readonly GroupAccessDetailsModel _context; public GroupAccessDetailsModel(GroupAccessDetailsModel context) { _context = context; } [BindProperty] public IList<OutputAccessRights> UsersAccessRights { get; set; } p

基于

我对我的.cs进行了如下编辑:

private readonly GroupAccessDetailsModel _context;
public GroupAccessDetailsModel(GroupAccessDetailsModel context)
{
    _context = context;
}
[BindProperty]
public IList<OutputAccessRights> UsersAccessRights { get; set; }

public async Task<IActionResult> OnGetAsync()
{
    UsersAccessRights = await _context.OutputAccessRights.ToListAsync();

    if (UsersAccessRights == null)
    {
        return NotFound();
    }
    return Page();
}
但我的问题是在等待上下文中。OutputAccessRights.ToListAsync()

错误:无法通过表达式引用类型

我尝试用wait_context.GroupAccessDetailsModel.OutputAccessRights.ToListSync()替换它;但它不起作用。你知道我该怎么解决这个问题吗

错误:无法通过表达式引用类型

这是因为您使用的是模型,而不是DbContext

您首先需要学习如何使用:

然后,您可以按照教程中关于

OnGet
方法中的以下代码用于显示所有
OutputAccessRights
数据

UsersAccessRights = await _context.OutputAccessRights.ToListAsync();
上一个线程的问题无法通过选择复选框列表。这意味着您可以显示数据,但无法将选择复选框传递到
OnPost

我为
Edit.cshtml.cs
所做的是测试
OnPost
方法是否可以获取列表复选框。无需关心如何在
OnGet
方法上设置
OutputAccessRights
,只需在
OnGet
方法上使用以前的代码即可

以下是关于如何使用EF Core的全部代码:

1.DbContext(
\u context.OutputAccessRights
来自此处):

3.Startup.cs:

public void ConfigureServices(IServiceCollection services)
{ 
    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
    services.AddDbContext<RazorContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("ConnectionName")));
}
5.然后您可以设置数据:

public class EditModel : PageModel
{
    private readonly RazorContext _context;

    public EditModel(RazorContext context)
    {
        _context = context;
    }

    [BindProperty]
    public IList<OutputAccessRights> UsersAccessRights { get; set; }

    public async Task<IActionResult> OnGetAsync()
    {
        UsersAccessRights = await _context.OutputAccessRights.ToListAsync();//set the data to UsersAccessRights
        return Page();
    }


    public async Task<IActionResult> OnPostAsync(IList<OutputAccessRights> usersAccessRights)
    {
        //do your stuff...
    }
}
公共类EditModel:PageModel
{
私有只读RazorContext\u上下文;
公共编辑模型(RazorContext上下文)
{
_上下文=上下文;
}
[BindProperty]
公共IList UsersAccessRights{get;set;}
公共异步任务OnGetAsync()
{
UsersAccessRights=wait _context.OutputAccessRights.ToListAsync();//将数据设置为UsersAccessRights
返回页();
}
公共异步任务OnPostAsync(IList usersAccessRights)
{
//做你的事。。。
}
}
"ConnectionStrings": {
   "ConnectionName": "Server=(localdb)\\mssqllocaldb;Database=DatabaseName;Trusted_Connection=True;MultipleActiveResultSets=true"
 }
public void ConfigureServices(IServiceCollection services)
{ 
    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
    services.AddDbContext<RazorContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("ConnectionName")));
}
PM>add-migration init
PM>update-database
public class EditModel : PageModel
{
    private readonly RazorContext _context;

    public EditModel(RazorContext context)
    {
        _context = context;
    }

    [BindProperty]
    public IList<OutputAccessRights> UsersAccessRights { get; set; }

    public async Task<IActionResult> OnGetAsync()
    {
        UsersAccessRights = await _context.OutputAccessRights.ToListAsync();//set the data to UsersAccessRights
        return Page();
    }


    public async Task<IActionResult> OnPostAsync(IList<OutputAccessRights> usersAccessRights)
    {
        //do your stuff...
    }
}