Asp.net-Web-Api
ASP.NET Core WebAPI 404 錯誤
我在 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通過瀏覽器或郵遞員,通過這個 url呼叫時http://localhost:14742/api/Blog/GetAllBlog,它讓我知道404 error,有什麼問題?
您已經在控制器類的頂部包含了 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(); } }您還需要為方法使用不同的路由名稱。希望這可以幫助。