gpt4 book ai didi

c# - ASP.NET 核心 FromQuery 获取内部带有点号的无效参数

转载 作者:太空狗 更新时间:2023-10-30 01:00:28 27 4
gpt4 key购买 nike

我正在尝试通过 GET 请求将一些参数发送到查询字符串中的 Controller 。我将查询字符串中的所有参数都设置为一个 Dictionary<string, string>使用 [FromQuery] .它运行良好,直到其中一个参数名称包含点 ( .) 符号。我检查了 Request.Query对象,它看起来解析得很好,但我的 Dictionary 对象得到了这个,确切的项目是错误的。所以它看起来像 [FromQuery] 中的错误 Binder 或者我做错了什么。调试值为 Request.Query 的代码和我的parameters下面:enter image description here

这是发送的查询字符串的样子: ?query=&InspectionType=Safety&ItemType=InspectionPoint&RecordParentGUID=9275bee2-0a2d-461c-8835-51880e76f035&parent.ResultClassCode=parent.ResultClassCode

更新:从在 .net 开发团队工作的 Eilon Lipton 那里得到答案,简而言之 - 这是设计使然。点号.[ , ]是用于表示属性和索引器的特殊的。此处提供完整答案:https://github.com/aspnet/Mvc/issues/6746

最佳答案

. (点)、[ 和 ] 字符在 ASP.NET MVC Core 内部随处使用,作为模型绑定(bind)过程中的路径分隔符,而且(据我所知)没有办法解决这个问题。

如果您想从查询字符串中访问原始值,Request.Query是迄今为止最简单的解决方案。

把它变成一个纯Dictionary<string, string> :

Request.Query.ToDictionary(kvp => kvp.Key, kvp => kvp.Value);

关于c# - ASP.NET 核心 FromQuery 获取内部带有点号的无效参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45997570/

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