POST请求失败,无提示使页面的模型集合为空

时间:2019-07-12 16:57:06

标签: c# asp.net-core

我已经使用ASP.NET MVC Core构建了一个Web应用程序。我试图使客户能够使用Razor View(而不是Razor页面)通过我的操作处理程序提交其请求。当用户与按钮交互时,没有问题意味着从后端调用适当的操作。我遇到的问题是我绑定(或我认为)的那部分模型仍然为空,而我还没有找到解决此问题的解决方案。

我的情况是针对我的页面模型,假设使用了一组食物食谱(IEnumerable),并且每个食谱都有成分。在表单中,每个食谱都有其自己的部分,在该部分中显示食谱的名称以及可以通过复选框选择或不选择的配料列表。有些成分是强制性的,因此是禁用的,而某些则是可选的,我们让用户决定是否在配方中使用它。那部分是功能。

什么是不起作用的是,无论何时我提交我的模型,即使该集合不是null且在UI上呈现时具有数据,当发送回时,它也将变为null。请求的这一部分无声地失败了,我无法弄清楚为什么。

这里还有更多背景。视图的绑定集合的部分是通过局部视图完成的。

过去,我使用foreach遍历我的收藏集。我发现这是一个错误,导致表单中的元素具有相同的ID,从而在将模型发送回服务器执行请求时很难区分和绑定模型。

为解决此问题,我将方法更改为for循环,但是即使使用确实使用asp-for的&标记帮助器,我仍然无法解决此问题。在忘记之前,我什至尝试使用input和Html.CheckboxFor

我写了一个示例案例,可以在以下要点中找到:https://gist.github.com/Kavignon/5e1a132d6532754a7ad41b9f229ae8a9

我希望RecipeSection和Recipes都不为空。我什至尝试删除我的“组件”,并将Recipe枚举直接放在页面模型中,但该参数仍然为空。

0 个答案:

没有答案