加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – FromBody收到的帖子会导致序列化错误

发布时间:2020-12-16 01:27:29 所属栏目:百科 来源:网络整理
导读:这是基本的设置,我有一个asp.net核心webapi控制器(在c#中),它有一个post函数,如下所示: [HttpPost]public ActionResultstring Post([FromBody] string Name){ //Do some processing with the "Name" argument... return Ok( "Success!" );} 我正在尝试将以
这是基本的设置,我有一个asp.net核心webapi控制器(在c#中),它有一个post函数,如下所示:

[HttpPost]
public ActionResult<string> Post([FromBody] string Name)
{
     //Do some processing with the "Name" argument...
     return Ok( "Success!" );
}

我正在尝试将以下原始JSON请求体发送到此函数:

{
    "Name": "Foo"
}

但是当使用上面的主体向此函数发送post请求时,我在服务器控制台中找回以下错误:

“Executing ObjectResult,writing value of type ‘Microsoft.AspNetCore.Mvc.SerializableError'”

而这个错误在客户端

{
“”: [
“Unexpected character encountered while parsing value: {. Path ”,line 1,position 1.”
]
}

我尝试在函数开头设置一个断点,但它甚至没有触发!为什么我会收到序列化错误?

解决方法

可序列化错误实际上是来自JSON.NET的解析错误,但问题实际上与解析JSON无关.

真正的问题是ASP.NET Core期望将JSON主体解析为对象/ DTO.因此,您可以使用两个选项来解决问题:

>为您的单个参数创建一个简单的DTO容器对象,例如:

public class SimpleObject { 
    public string Name { get; set; } 
}

>不要在请求体中传递完整的JSON对象,只需使用一个简单的字符串,例如:“我的参数字符串”

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读