C# ASP.net核心API中的路由
我读了很多关于Asp.net内核中API路由的主题,但我无法让它工作 首先,这是我的控制器:C# ASP.net核心API中的路由,c#,asp.net-core,.net-core,asp.net-core-webapi,asp.net-core-routing,C#,Asp.net Core,.net Core,Asp.net Core Webapi,Asp.net Core Routing,我读了很多关于Asp.net内核中API路由的主题,但我无法让它工作 首先,这是我的控制器: Public class BXLogsController : Controller { //[HttpGet("api/[controller]/ID/{id}", Name = "GetL")] public IActionResult GetById(string id) { if (id.Trim() == "") return B
Public class BXLogsController : Controller
{
//[HttpGet("api/[controller]/ID/{id}", Name = "GetL")]
public IActionResult GetById(string id)
{
if (id.Trim() == "")
return BadRequest();
else
{
Logs l = AccessBase.AccBase.GetLog(id);
return Json(l);
}
}
//[HttpGet("api/[controller]/API/{apiname}", Name = "GetLAPI")]
public IActionResult GetByAPI(string apiname)
{
if (apiname.Trim() == "")
return BadRequest();
else
{
List<Logs> lstLogs = AccessBase.AccBase.GetLogsApi(apiname);
return Json(lstLogs);
}
}
}
我一定忘了什么,但什么也没看见
有人能帮我吗?试试这个。您可以在控制器上放置公共路由前缀
[Route("api/[controller]")]
public class BXLogsController : Controller {
//GET api/BXlogs/id/blah
[HttpGet("ID/{id}", Name = "GetL")]
public IActionResult GetById(string id) { ... }
//GET api/BXlogs/api/blahapi
[HttpGet("API/{apiname}", Name = "GetLAPI")]
public IActionResult GetByAPI(string apiname) { ... }
}
请阅读此处的属性路由注意
通过由定义的常规路线无法访问操作
Startup.Configure中的UseEndpoints、UseMvc或UseMvcWithDefaultRoute
因此,不能将UseMvc路由与API一起使用
发件人:
如果您计划使用类似于web API的自定义操作名称,请使用
[Route("api/[controller]")]
public class BXLogsController : Controller {
//GET api/BXlogs/blahapi
[HttpGet("{apiname}", Name = "GetLAPI")]
public IActionResult GetByAPI(string apiname) { ... }
}
稍微扩展到@nkosi
所以你会打电话给我
获取:https://localhost:44302/api/BXLogs/GetLAPI
或者本教程:确保没有重复的路线。
[Route("api/[controller]")]
public class BXLogsController : Controller {
//GET api/BXlogs/blahapi
[HttpGet("{apiname}", Name = "GetLAPI")]
public IActionResult GetByAPI(string apiname) { ... }
}