【发布时间】:2019-08-06 06:35:15
【问题描述】:
我有以下控制器,我想将其用作 ajax 帖子的 Web API 控制器,以从我的用户表中检索数据。
namespace MyProjectName.Controllers.API
{
[Route("api/[controller]")]
[ApiController]
public class UsersController : ControllerBase
{
private readonly myContext _context;
public UsersController(myContext context)
{
_context = context;
}
[HttpGet]
public List<string> GetInstitutionNamesById(int id)
{
// returns desired list
}
}
}
现在我希望这个函数的路由是这样的:/api/users/getinstitutionnamesbyid 但显然它似乎只是 /api/users 哪个我真的很困惑(如果我添加额外的 HttpGet 函数会怎样?)。
谁能解释我做错了什么?我使用 Web Api 控制器不是预期的方式吗?我的路由错了吗?
提前致谢。
【问题讨论】:
-
我同意 api 中的命名令人困惑。但我认为 api 的重点是控制器的名称是您期望从中获得的名称,因此您实际上只有一个 get 操作(并且该方法的名称除了“get”之外不相关),否则如果会更加混乱。您需要为其他获取操作编写另一个控制器。但您也有获取特定数字的重载选项,例如:/api/users/3
标签: c# asp.net-core asp.net-core-mvc asp.net-web-api-routing asp.net-core-2.2