Van*_*cio 5 c# frombodyattribute asp.net-core asp.net-core-webapi
这是基本设置,我有一个asp.net核心webapi控制器(在c#中),具有以下发布功能:
[HttpPost]
public ActionResult<string> Post([FromBody] string Name)
{
//Do some processing with the "Name" argument...
return Ok( "Success!" );
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试将以下原始JSON请求正文发送到此函数:
{
"Name": "Foo"
}
Run Code Online (Sandbox Code Playgroud)
但是,当使用上面的正文向该函数发送发布请求时,我在服务器控制台中收到以下错误:
“执行ObjectResult,写入类型为'Microsoft.AspNetCore.Mvc.SerializableError'的值”
而这个错误在客户端
{“”:[“解析值时遇到意外字符:{。Path,第1行,位置1。” ]}
我尝试在函数的开头设置断点,但它甚至不会触发!为什么会出现可序列化的错误?
可序列化的错误实际上是来自JSON.NET的解析错误,但该问题实际上与解析JSON无关。
真正的问题是ASP.NET Core希望将JSON主体解析为对象/ DTO。因此,您有两个选项可用来解决问题:
为您的单个参数创建一个简单的DTO容器对象,例如:
public class SimpleObject {
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)与其在请求主体中传递完整的JSON对象,不如使用一个简单的字符串,例如: "My parameter string"
归档时间: |
|
查看次数: |
1991 次 |
最近记录: |