问题标签 [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.

0 投票
0 回答
207 浏览

c# - 在 api .net 核心上使用 FromData 与 FromBody 属性

我有一个.net core api,它与 swagger 集成。现在我正在尝试使招摇页面对用户友好,但我不愿意为此牺牲安全性。但是,我对上述主题没有足够的理解和经验,我正在寻找一些参考来帮助我入门,甚至直接的答案也可以。

目前在我的操作中,我使用[FromForm]装饰器,然后需要Content-Type: multipart/form-data;通过 a 才能工作。由于预期的调用者是一个角度应用程序,它可以很容易地用一个FormData对象来适应它。这已经过测试,一切都很好。现在,如果我要使用[FromBody]装饰器,那么预期值应该是Content-Type: application/json我理解的更适合 api 的值,但是我的大摇大摆很难使用。它在测试时需要一个格式化的 json 值,以反对每个提供输入和验证类型(如下拉菜单等)的字段。

在安全性方面,我使用[FromBody]vs的含义是什么[FromForm],是一种比另一种更安全,还是一种比另一种更受欢迎,为什么?

0 投票
0 回答
17 浏览

c# - AWP.Net Web API Post 对象始终为空

我已通读此线程,但没有一个答案能够解决我的问题。

我正在尝试将一个简单的 POCO 发布到 .Net Web API 控制器,但无论正文中有什么,参数始终是默认对象,从未填充。

我的 SimplePOCO 对象:

我正在使用 RestSharp 客户端使用以下代码发布到控制器:

我的 Api 控制器方法:

我尝试过使用和不使用 [FromBody] 属性。我也尝试使用 JObject 类型作为参数,然后我可以成功地反序列化为 SimplePoco 对象。如果我检查 requestBody 我可以看到收到的 JSON 是有效的,如下所示:

此外,我打开了诊断日志,输出窗口显示模型有效:

w3wp.exe 信息:0:请求,方法=POST,Url= http://lewis-10:8765/api/Warehouse/SimplePOCO,消息=' http://lewis-10:8765/api/Warehouse/SimplePOCO' w3wp.exe 信息:0:Message='Warehouse',Operation=DefaultHttpControllerSelector.SelectController w3wp.exe 信息:0:Message='DMHWebAPI.Controllers.WarehouseController',Operation=DefaultHttpControllerActivator.Create w3wp.exe 信息:0:Message= 'DMHWebAPI.Controllers.WarehouseController',Operation=HttpControllerDescriptor.CreateController w3wp.exe 信息:0:Message='选择操作'ImportPOCO(SimplePOCO simplePOCO)'',Operation=ApiControllerActionSelector.SelectAction w3wp.exe 信息:0:Message='The身份验证过滤器成功地将主体设置为已知身份。身份。名称=''。Identity.AuthenticationType='Bearer'.', Operation=HostAuthenticationFilter.AuthenticateAsync w3wp.exe 信息:0:模型状态有效。值:simplePOCO=DMH.DTO.Upload.SimplePOCO',Operation=HttpActionBinding.ExecuteBindingAsync

原始提琴手请求参考:

0 投票
1 回答
37 浏览

c# - Angular 前端,然后是带有语法错误的 C# 后端:HTTP 控制器在正文中接收 JSON 对象

试图让我的功能工作的基本模型。

前端(Angular):正文数据将是此类的 JSON:

然后一个函数创建类对象:

然后调用一个(仍在前端的)Angular 函数将其发送到后端:

后端:

以下是源代码的图像,因此您可以看到语法红色下划线 注 2 语法错误

我不认为这两者是相关的(或者它们是相关的?),但参考身体参数当然是必不可少的。

而且,当然,让我知道你看到的任何其他可能有问题的地方。

谢谢你的帮助。我从你们那里学到了很多。瑜伽士

0 投票
2 回答
202 浏览

asp.net-core - ASP.Net Core 所需参数绑定无法使用 FromBody 失败

我正在开发一个 Asp.Net Core API。

我的控制器声明

我的端点看起来像这样

命令看起来像这样

兼容性级别设置为 2.1

老问题:我希望这会返回一个缺少 Ids 参数的 400 错误请求,但它无法返回绑定错误。我究竟做错了什么?

更新的问题:我希望这会返回一个 400 错误请求,其中缺少或为空的 Ids 参数。如果参数丢失(null),则响应符合预期,但如果它是空集合,则返回 200 ok。是否可以更改某些内容,以便在参数存在但为空时收到错误的请求?

0 投票
1 回答
17 浏览

json - .Net Core 2.1 ModelBinding 在发布 JSON 时不起作用

我有一个 .net core 2.1 解决方案,包括一个 Web 应用程序、一个 API 和一堆库。

我正在尝试将 JSON 发布到 Web 项目中的控制器中,但它不起作用 - 我在 JSON 中设置的属性似乎只是设置为它们的默认值。

我尝试过使用和不使用 [FromBody] 属性,但都没有运气。

这就是我在控制器中所拥有的

那里没有什么不寻常的地方。

我使用 PostMan 发布到此,正文如下:

如果我在动作中放置一个断点并点击它,我可以看到 test 的值为 0。

我对 API 项目中的操作没有这个问题,因此 Web 项目中一定缺少一些东西 - 需要进行一些设置才能使其正常工作?

使用 jquery 发布数据时,我得到了相同的结果,所以我相当确定问题出在 web 应用程序上,而不是我在邮递员中遗漏的东西。

我认为可能没有指定 InputFormatter,但我告诉我这应该作为 UseMVC 扩展的一部分自动发生?

对此的任何帮助表示赞赏。

0 投票
2 回答
210 浏览

c# - .net 核心控制器 - 是否将 [FromBody] 属性添加到方法?

我正在开发小型网络应用程序,当涉及到控制器/端点时,我看到很多人[FromBody]在方法参数中添加了属性,而有些人没有。

我不明白这有什么意义?

这是示例:

这个端点是一样的吗?

如果有任何...,这两种方法定义有什么区别?

感谢大家

干杯

0 投票
1 回答
488 浏览

c# - Ajax POST 适用于 [FromForm] 但不适用于 [FromBody]

在我看来,我通过BookViewModel了,我有一个我正在尝试创建的表单Book。如果我使用该[FromForm]属性,我可以执行此操作,但我试图了解它与[FromBody]. 这是我的模型:

这是我的视图和控制器:

看法:

所有这些代码都可以正常工作,但我想[FromBody]改用。

我已添加contentType: "application/json"到我的 ajax,并添加[FromBody]到我的操作方法中,但是当我提交表单时,BookViewModel操作方法中为空。我想知道如何使用[FromBody]withcontentType: "application/json"而不是提交我的表单application/x-www-url-formencoded

[FromBody]将执行我想要的默认模型绑定。我假设原因[FromBody]没有奏效是因为我序列化表单的方式,但我不确定。

0 投票
0 回答
62 浏览

javascript - 我无法从 javascript 发布 json 对象

我有反应片段:

然后:

}

我在 api 端收到它:

但它model是空的。

我很困惑为什么会这样。

有什么建议我做错了吗?

0 投票
2 回答
41 浏览

json - ajax 不会将对象数组传递给操作

我正在使用 ajax 将 Json 数据传递给 asp.net 核心项目中的操作。我有一组对象要传递

我有一个名为 AgentsListScoreClass.cs 的类,下面是我试图在我的操作中获取数组的方式:

AgentScores 始终为空。当我传递一个字符串列表时可以,但AgentsListScoreClass它始终为空。

0 投票
1 回答
47 浏览

c# - 如何使用参数点击 HttpPost-action?

我有一个 API

当我想调用这个动作时

然后我将进入 API 的 Action。

...当你添加这样的东西时

然后我们没有进来API的Action。

我怎么解决这个问题?