ASP.NET核心的WebAPI 404错误
问题描述:
创建在asp.net核心这个API的内容的Web API:ASP.NET核心的WebAPI 404错误
[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核心(的WebAPI模板)知道我们不需要像注册路由的任何配置,我们需要在Asp.net Mvc 5.3及更高版本中使用。
因此,当我尝试通过浏览器或邮递员拨打GetAllBlog
,通过此URL http://localhost:14742/api/Blog/GetAllBlog
,它得到我404 error
,什么是问题?
答
您已经在控制器类的顶部包含了api/[controller]路由,因此在定义访问方法的路由时不需要再包含它。 实质上,将Route更改为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();
}
}
您还需要为方法使用不同的路由名称。 希望这有助于。