action:
model:
自定义验证:
现在BindModelAsync这个方法在2.2版本死循环.2.1中不会
有大神知道怎么回事吗 不胜感激
标签:
.net core 2.2
你确定 2.1 不会死循环?
先说解决方法:
POST数据的时候,带上索引:
这样既不会陷入无限循环(其实是有限:cry),也能按预期绑定数据。
你可以在前端页面表单里为每一组Address都加上一个隐藏域 index
简单快速,不过可能不是你想要的
你的
Address
类中的属性,不能全部都标记你的自定义 ModelBinder 。就是说,你可以增加一个属性,比如 Id ,这个 Id 不使用你的 Binder ,这样就可以避免陷入循环。
不过你 POST 的数据里必须要有一个
Addresses[n].Id
,否则啥也绑定不到。应该有更正确的方法,以及造成这种情况的原因,我还在看,回头再说。
可以试一试 拉姆达表达式
建议参考 ASP.NET Core 2.2 帮助文档 Custom Model Binding in ASP.NET Core 修改你的代码