c# - @Html.HiddenFor 不适用于 ASP.NET MVC 中的列表

标签 c# asp.net asp.net-mvc-3 hidden-field

我正在使用一个包含列表作为属性的模型。我正在用从 SQL Server 中获取的项目填充此列表。我希望列表隐藏在 View 中并传递给 POST 操作。稍后我可能想使用 jQuery 将更多项目添加到此列表,这使得数组以后不适合扩展。通常你会使用

@Html.HiddenFor(model => model.MyList)

完成此功能,但由于某些原因,POST 中的列表始终为空。

非常简单的问题,有人知道为什么 MVC 会这样吗?

最佳答案

我刚刚遇到这个问题并通过执行以下操作简单地解决了它:

@for(int i = 0; i < Model.ToGroups.Count; i++)
{
    @Html.HiddenFor(model => Model.ToGroups[i])
}

通过使用 for 而不是 foreach 模型绑定(bind)将正常工作并在列表中选取所有隐藏值。似乎是解决此问题的最简单方法。

关于c# - @Html.HiddenFor 不适用于 ASP.NET MVC 中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9385286/

相关文章:

asp.net - 如何处理 ASP.NET 中未处理的线程异常?

c# - 如何使笔刷平滑而中间没有线条

c# - 检查 asp.net mvc 中是否已经过去了 x 个月

asp.net - 如何调试已部署的网站

asp.net - 我没有提供选择母版页的选项

c# - MVC3 模型属性中的 RegexStringValidator 验证

C# 灵活/动态 USING 进行发布

c# - 检查未读邮件

c# - 在 asp.net mvc 中应该在哪里创建/操作 View 模型?

asp.net-mvc-3 - 传入字典的模型项的类型为 'Sitecore.Mvc.Presentation.RenderingModel' ,但此字典需要类型为 'X' 的模型项