我有一个API操作,它接受来自查询字符串的字典,如下所示:
[ApiController]
public class MyController : ControllerBase {
public async Task<ActionResult> Post(CancellationToken ct, [FromQuery(Name = "responses")] Dictionary<string, bool> responses, [FromBody] MyModelType model) { }
}
字典键描述了上的嵌套属性
model
(作为请求主体发送),例如:
Foo
Foo.Bar
Bar[2].Foo
对于上面的前两个键,字典绑定可以正常工作(正如您所期望的):
POST https://localhost/MyController?responses[Foo]=true&responses[Foo.Bar]=false
但是,对于第三个键,由于方括号的原因,它失败了:
POST https://localhost/MyController?responses[Bar[2].Foo]=false
...具有
responses
包含一个带有密钥的条目
Bar[2
.显然,输入需要转义,但我还没有找到任何关于如何进行转义的文档,以下方法也不起作用:
Bar\[2\].Foo
Bar[%5B2%5D].Foo
绑定到字典时,我应该如何转义查询字符串中的方括号?