ASP.NET Core路由配置问题:HttpGet路由指向非方法名端点
搞定ASP.NET Core CreditData控制器的两个API端点路由
没问题,我来帮你配置这两个符合需求的API端点!咱们直接上代码和说明,清晰明了:
首先,控制器的基础路由[Route("api/[controller]")]可以保留,然后给每个Action添加对应的路由约束就行:
using Microsoft.AspNetCore.Mvc; [Route("api/[controller]")] [ApiController] public class CreditDataController : ControllerBase { // 1. 处理 /api/creditdata?query=text1,text2 这类带查询参数的请求 [HttpGet] public IActionResult GetCreditData([FromQuery] string[] query) { // 这里处理你的业务逻辑,比如根据query数组筛选数据 return Ok(new { QueryParameters = query }); } // 2. 处理 /api/creditdata/text1 这类路径参数的请求 [HttpGet("{value}")] public IActionResult GetCreditDataByValue(string value) { // 这里处理根据value参数获取数据的逻辑 return Ok(new { PathValue = value }); } }
关键细节说明:
- 第一个Action用
[HttpGet],无额外路由片段,匹配api/creditdata的GET请求;[FromQuery] string[] query会自动将?query=text1,text2中的多值绑定为字符串数组,若仅需单个查询值,可改为string query。 - 第二个Action用
[HttpGet("{value}")],{value}作为路由参数占位符,匹配api/creditdata/后的任意字符串;参数string value会自动绑定该路径值。 - 务必添加
[ApiController]属性,它会自动处理参数绑定的默认逻辑,减少额外配置工作。
这样配置后,两个端点就能正常工作啦!
内容的提问来源于stack exchange,提问作者Lars Holdgaard
相关产品推荐
相关产品推荐

