HTTPGet操作方法获取错误消息

问题描述

我尝试使用HttpGet操作方法,但收到错误消息。
我按照this Youtube Video的教程制作了CRUD应用程序,但收到2条错误消息,因此我从here复制了代码,但没有任何区别。

我还安装了NuGet软件包Microsoft.AspNetCore.HttpSystem.Net.Http,以为我可能有问题,因为缺少软件包,但也无济于事。

下面是PeopleController.cs下的代码

using CurIoUsDriveTutorial.Data.Models;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;

namespace CurIoUsDriveTutorial.Controllers
{
    [ApiController]
    [Route("api/[controller]")]
    public class PeopleController: ControllerBase
    {
        //dependancy injection for applicationdbcontext
        private readonly ApplicationDBContext context1;
        public PeopleController(ApplicationDBContext context) { this.context1 = context; }
    }

    //get action method
    [HttpGet]
    public async Task<IActionResult> Get() => await context1.People.ToListAsync();

}

以下是第22行(​​public async Task<IActionResult> Get() => await context1.People.ToListAsync();)的错误消息:

    1. CS0116名称空间不能直接包含诸如字段或方法之类的成员。
    1. CS0103当前上下文中不存在名称“ context1”。

红色的波浪状行位于Getcontext1的下面。另外,我不知道这些信息是否有用,但该项目是Blazor应用程序。

解决方法

在第18行中关闭类PeopleController,因此方法Get不再是该类的一部分。在C#中,函数不能直接成为名称空间的成员。出于相同的原因,它无法访问变量context1

解决方案:将支架从第18行移至第23行。

,

Get()方法在您的PeopleController类之外定义。 您应该在类中定义方法。 这样。

public SomeClass
{
  //blur
  public void SomeMethod()
  {
       //do nothing.
  }
}