问题描述
我尝试使用HttpGet
操作方法,但收到错误消息。
我按照this Youtube Video的教程制作了CRUD应用程序,但收到2条错误消息,因此我从here复制了代码,但没有任何区别。
我还安装了NuGet软件包Microsoft.AspNetCore.Http
和System.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();
)的错误消息:
红色的波浪状行位于Get
和context1
的下面。另外,我不知道这些信息是否有用,但该项目是Blazor应用程序。
解决方法
在第18行中关闭类PeopleController
,因此方法Get
不再是该类的一部分。在C#中,函数不能直接成为名称空间的成员。出于相同的原因,它无法访问变量context1
。
解决方案:将支架从第18行移至第23行。
, Get()方法在您的PeopleController
类之外定义。
您应该在类中定义方法。
这样。
public SomeClass
{
//blur
public void SomeMethod()
{
//do nothing.
}
}