gpt4 book ai didi

asp.net-web-api - ASP.NET Core WebAPI 404 错误

转载 作者:行者123 更新时间:2023-12-04 03:14:39 24 4
gpt4 key购买 nike

我在 asp.net 核心中创建了一个 Web Api,这是 Api 的内容:

 [Route("api/[controller]")]
public class BlogController : Controller
{

public IContext _context { get; set; }
public BlogController(IContext ctx)
{
_context = ctx;
}

[HttpGet]
[Route("api/Blog/GetAllBlog")]
public List<Blog> GetAllBlog()
{
return _context.Blogs.ToList();
}


}

正如我在 Asp.net Core(WebApi 模板)中所知道的,我们不需要像注册路由这样的配置,而我们在 Asp.net Mvc 5.3 及更早版本中需要这些配置。

所以当我尝试调用 GetAllBlog通过浏览器或 postman ,通过此网址 http://localhost:14742/api/Blog/GetAllBlog ,它让我 404 error ,什么问题?

最佳答案

您已经在 Controller 类的顶部包含了 api/[controller] 路由,因此在定义访问方法的路由时无需再次包含它。
本质上就是将Route to api/Blog/GetAllBlog改为GetAllBlog。您的代码应如下所示:

[Route("api/[controller]")]
public class BlogController : Controller
{

public IContext _context { get; set; }
public BlogController(IContext ctx)
{
_context = ctx;
}

[HttpGet]
[Route("GetAllBlog")]
public List<Blog> GetAllBlog()
{
return _context.Blogs.ToList();
}

[HttpGet]
[Route("GetOldBlogs")]
public List<Blog> GetOldBlogs()
{
return _context.Blogs.Where(x => x.CreationDate <= DateTime.Now.AddYears(-2)).ToList();
}
}

您还需要为方法使用不同的路由名称。
希望这可以帮助。

关于asp.net-web-api - ASP.NET Core WebAPI 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41422325/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com