asp.net - .NET Core Web API:多个 [FromBody]?
问题描述
我正在将用 ASP.NET MVC 编写的代码转换为 ASP.NET Core 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 Core 中的参考模型绑定
每个动作最多可以有一个参数,用
[FromBody]
. ASP.NET Core MVC 运行时将读取请求流的责任委托给格式化程序。一旦为参数读取了请求流,通常不可能再次读取请求流以绑定其他[FromBody]
参数。
MVC Core 对如何将模型绑定到动作更加严格。当您想要自定义绑定行为时,您还必须明确指出要绑定数据的位置。
推荐阅读
- vuejs2 - 如何将 v-slot:activator 和 v-on 与子组件一起使用?
- python - 本地 CSS 文件从 plotly dash 应用程序中删除
- python-3.x - Python:如何以选项居中的方式设置菜单选项间距?
- azure - 如何从单独的资源组中检索存储帐户连接字符串
- sql - 如何消除SQL中“(”之外的所有字符?
- r - 如何在ggplot中始终具有固定的小数位数 - geom_text
- python - 我在第 56 行的 python 代码有什么问题吗?
- java - 处理片段中的单选组和按钮
- javascript - 带有 Vue js 的 Ionic 4 - ion-menu 中的 ion-content 不处理任何点击
- javascript - 使用ajax时的Javascript“for”循环问题,即使条件为假,循环也可以访问