问题标签 [frombodyattribute]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc - 是否可以将多个内容类型路由和绑定到同一个操作?
来自微软文档:
默认情况下,模型绑定从 HTTP 请求中的以下来源以键值对的形式获取数据:
- 表单域
- 请求正文(对于具有 [ApiController] 属性的控制器。)
- 路线数据
- 查询字符串参数
- 上传的文件
我很想知道有没有一种方法可以从不使用ApiControllerAttribute
.
我问这个问题的原因是我们从 asp net 5 迁移到 net core 5,我们希望将模型参数与内容类型请求独立绑定:withcontent-type: x-www-form-urlencoded
或 withcontent-type application/json charset=utf-8
我已经阅读了很多关于这个问题的内容,但只发现决定使用本文[FromBody]
中描述的属性为每个内容类型分离方法,这不适合我。
c# - 尝试使用 WebClient 将空正文传递给 POST 端点
我目前在我的项目中有一个端点:
在我的客户端,我试图用 WebClient 调用这个端点,如下所示:
这是我担心的地方:
对于这个端点,我通常会传递一个 JSON 对象
但是,我希望这个端点也不需要正文,我希望它为空,因为端点不应该需要它
如果您查看我的
body
变量 - 我将其设置为“{}”,否则我没有找到将“EMPTY”主体传递给端点的不同方法
问题:
如何正确地将 EMPTY 正文传递到此端点?(这个端点将被不同的客户使用,我只是在寻找最佳实践方法?
在我的端点中,我有
[FromBody] object Json
参数。让它成为更好的做法object
还是我可以这样做JObject
仍然可以接受一个空的身体
如果这些问题看起来很明显,请原谅我对这些问题的“菜鸟”,我才刚刚开始 API 开发,并希望确保我正在使用最佳实践。
asp.net-core - 使用 HttpWebRequest 调用 ASP.NET Core 2.1 API POST 正文为空,似乎无法解析为 JSON
我正面临一个奇怪的错误,其中 .NET Core 2.1 API 在某些情况下似乎忽略了 JSON 主体。
- 我建议了许多其他问题(例如this one,它本身引用了其他问题),但无法解决我的问题。
我有类似以下 API 方法的东西:
而相关的配置是:
TestJsonConverter
我为测试为什么事情不能正常工作而创建的简单转换器在哪里,它很简单:
使用 Postman 调用 api 方法是可行的,这意味着它通过 JSON 转换器的CanConvert
, CanRead
, ReadJson
,然后路由到SendInvoice
包含body
解析的 json 的路径。
但是,使用HttpWebRequest调用 api 方法(从 .NET Framework 4,如果这很重要)只会通过CanConvert
,然后路由到SendInvoice
null body
。
请求正文只是一个简单的 json,类似于:
当我直接阅读正文时,我得到了两种情况的预期值:
我看不出这两种请求之间有任何有意义的区别——左边是 Postman 的请求,右边是 HttpWebRequest:
可以肯定的是,Content-Type
标题设置为application/json
. 此外,FWIW,HttpWebRequest
正文设置如下:
并调用:
问题
为什么body
与 一起使用时为空HttpWebRequest
?为什么在这种情况下会跳过 JSON 转换器读取方法?
c# - ASP.NET Core Web API:如何在参数绑定时将 null 值分配给请求中缺少的属性
使用 .NET 6.0。当尝试将参数绑定到请求的主体时,我想为请求null
中未包含的属性分配一个值。
考虑以下:
如果我发送以下请求{"property1":"abc"}
,我想value1
成为{"property1":"abc","property2":null}
,但我得到一个 HTTP 400,其中包含一条property2
必需的错误消息。
使 property2 成为的最佳方法是null
什么?我很确定它在 .NET Core 3.1 中是这样工作的。
谢谢