我正在将ASP.Net MVC中编写的代码转换为ASP.Net Core MVC。当我转换代码时,我遇到了一个问题。我们使用了一个包含多个参数的方法:
[HttpPost]
public class Search(List<int> ids,SearchEntity searchEntity)
{
//ASP.NET MVC
}
但是编码时.net核心 ids 参数为空。
[HttpPost]
public class Search([FromBody]List<int> ids,[FromBody]SearchEntity searchEntity)
{
//ASP.NET Core MVC
}
当我在SearchEntity类中使用“ids”参数时没有问题,但我有很多像这样编写的方法。我该怎么办这个问题?
答案 0 :(得分:6)
只能有一个FromBody
,身体只能读一次
参考Model Binding in ASP.NET Core
每个操作最多只能有一个参数
[FromBody]
。 ASP.NET Core MVC运行时将读取请求流的责任委托给格式化程序。一旦为参数读取了请求流,通常无法再次读取请求流以绑定其他[FromBody]
参数。
MVC Core对如何将模型绑定到操作更加严格。当您想要自定义绑定行为时,还必须明确指出要绑定数据的位置。