gpt4 book ai didi

c# - ASP.net Core API 中的路由

转载 作者:可可西里 更新时间:2023-11-01 03:06:34 24 4
gpt4 key购买 nike

我在 Asp.net core 中阅读了很多关于 API 路由的主题,但我无法让它工作。

首先,这是我的 Controller :

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);
}
}
}

我尝试将 HttpGetAttribute 与路径一起使用(请参阅评论),但这不起作用。

所以我想使用 MapRoute 方法,但这也不起作用。

app.UseMvc(routes =>
{
routes.MapRoute(
name: "LogsId",
template: "api/[controller]/ID/{id}",
defaults: new { controller = "BXLogs", action = "GetById" });

routes.MapRoute(
name: "LogsAPI",
template: "api/[controller]/API/{apiname}",
defaults: new { controller = "BXLogs", action = "GetByAPI" });
});

我一定是忘记了什么,但我什么也没看到。

谁能帮帮我?

最佳答案

试试这个。您可以在 Controller 上放置一个通用的路由前缀。

[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) { ... }
}

在这里阅读属性路由 Routing to Controller Actions

关于c# - ASP.net Core API 中的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40868604/

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