ASP.NET Core WebAPI 404 错误

2024-03-10

我在 asp.net core 中创建了一个 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,通过此 urlhttp://localhost:14742/api/Blog/GetAllBlog,它让我404 error,什么问题?


您已经在控制器类的顶部包含了 api/[controller] 路由,因此在定义访问方法的路由时无需再次包含它。 本质上,将 api/Blog/GetAllBlog 的 Route 更改为 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();
    }
}

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET Core WebAPI 404 错误 的相关文章

随机推荐