【发布时间】:2021-08-27 11:17:28
【问题描述】:
我有以下 ASP.net Core MVC 控制器:
namespace Mugen.API
{
[Route("api")]
public class ApiController : Controller
{
[HttpGet("search")]
public async Task<IActionResult> SearchAsync(
[FromQuery] int skip,
[FromQuery] int pageSize,
[FromQuery] [CanBeNull] string searchTerm,
[FromQuery] [CanBeNull] Dictionary<string, List<string>> filters
)
{
// ...
}
}
}
例如,当我向 url 发出请求时
http://localhost/api/search?skip=0&pageSize=20&filters=
或
http://localhost/api/search?skip=0&pageSize=20&filters[Param][0]=value
参数的绑定按预期工作。
但是,如果我没有明确提供 filters 参数,即
http://localhost/api/search?skip=0&pageSize=20
我正在按预期填充所有参数,但获取值的字典除外
{{"skip": ["0"]}, {"pageSize":["20"]}}
填充在字典中,这不是用户想要的请求。这是在填充其他参数(类似于镜像)的基础上完成的。
我正在使用.net Core 3.1 和Microsoft.AspNetCore.Mvc 2.2.0
【问题讨论】:
-
嗨@Mugen,关于这个案例有什么更新吗?
标签: model-view-controller asp.net-core-mvc asp.net-core-3.1 model-binding