【问题标题】:Multiple-Add in a single View, ASP.NET MVC在单个视图中添加多个,ASP.NET MVC
【发布时间】:2014-01-06 13:22:40
【问题描述】:

我试图在一个视图中一次添加多个相同类型的项目,同时给出模型。

@model List<Item>

对于视图,它呈现,当我回发时,模型为空,即使表单数据发送正确但由于某种原因映射没有发生。

【问题讨论】:

标签: c# asp.net asp.net-mvc asp.net-mvc-4 asp.net-mvc-views


【解决方案1】:

对于复杂的项目,您需要为模型绑定器索引您的集合。

将您的循环更改为模型绑定器将拾取的循环(没有看到您的视图或模型,我在这里使用Field 进行演示)。

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

然后它们将被发送回服务器。

有关它的更多信息,请参见此处:

http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/

【讨论】:

  • 谢谢,我还需要问一下,如果我希望至少填写集合中的一项而不让 ModelState 抱怨其他未填写的必填字段,该怎么办。
  • 没有问题,我以前不必这样做。您可能必须向模型添加一个标志,以说明您要删除哪个项目的模型状态错误。然后在帖子中删除它。我会提出另一个问题,因为这是一个很好的问题,我敢肯定其他人会有更多信息。 :)
  • 如果我想插入比 Model.Count 更多的项目会发生什么? -hutchonoid
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-11
相关资源
最近更新 更多