我有一个视图模型,视图模型的一个属性是一个名为Profile的对象. Profile的一个属性是另一个对象的列表,称为CD.从视图中,我将POST主体值设置为以下值
Profile.CD [0] .Prop1 = TEST&安培; Profile.CD [0] .Prop2 = TEST&安培; Profile.CD [1] .Prop1 = TEST2&安培; Profile.CD [1] .Prop2 = TEST2
如果我要在视图中的列表中添加第三个对象,它将作为Profile.CD [2] .Prop1 = TEST3发布,在控制器中,所有突然的Profile.CD都为空. 2项及以下Profile.CD获取我期望的值.一旦我添加第三项,模型活页夹就会停止工作.我的智慧结束了,我已经尝试了所有我能想到的东西.
我尝试过的事情
>从视图中删除项目,然后添加新项目 – WORKS
>从视图中删除两者,并添加2个新项目 – WORKS
>在视图中添加第三个项目 – 视图模型中的FAILS Profile.CD为空
我没有使用任何模型状态验证规则.在调试时,我在即时窗口中尝试过类似下面的内容吗?Request.Form.Where(x => x.Keys.Contain(“Profile.CD”)).ToList())当然,所有的我的值存在于Request对象中,即使视图模型中的列表为null.
Profile.CD中对象的值不必是唯一的.我已经尝试将每个值设置为“TEST”,只是为了验证它不是导致此问题的输入.
我真的迷路了……
查看模型
public class Portalviewmodel { public ProfileModel Profile { get; set; } }
档案模型
public class ProfileModel { //bunch of other static properties that are bound just fine.. like strings and decimals... public List<CDModel> CD { get; set; } }
调节器
public async Task<IActionResult> Edit (Portalviewmodel Model) { Repo.UpdateProfile(Model.Profile); // in this method it foreachs Profile.CD,but sometimes this is null and other times it get's it's values.... return Ok(); }
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。