.NET Core Web API: multiple [FromBody]?



我正在将用 ASP.NET MVC编写的代码转换为 ASP.NET 核心MVC。在转换代码时,我遇到了一个问题。我们使用了一个具有多个参数的方法,如下所示:

[HttpPost]                                                      
public class Search(List<int> ids, SearchEntity searchEntity)           
{   
//ASP.NET MVC                                                                   
}

但是在 .NET Core 中对此进行编码时,ids参数是null

[HttpPost]                                                      
public class Search([FromBody]List<int> ids,[FromBody]SearchEntity searchEntity)           
{   
//ASP.NET Core MVC                                                                   
} 

当我将ids参数放在SearchEntity类中时,没有问题。但是我有很多这样写的方法。我能对此问题做些什么?

只能有一个FromBody,因为正文只能读取一次

ASP.NET 核心中的参考模型绑定

每个用[FromBody]修饰的操作最多可以有一个参数。ASP.NET 核心 MVC 运行时将读取请求流的责任委托给格式化程序。读取参数的请求流后,通常无法再次读取请求流以绑定其他[FromBody]参数。

MVC Core 在如何将模型绑定到操作方面更加严格。当您要自定义绑定行为时,还必须显式指示要从何处绑定数据。

我使用了一个解决方案,其中使用元组将多个参数作为 [FromBody] 发送:

[HttpPost]                                                      
public class Search([FromBody](List<int> ids, SearchEntity searchEntity) parameters)
{   
//ASP.NET Core MVC                                                                   
}

相关内容

  • 没有找到相关文章

最新更新