从 View -> 控制器传递整个对象实例(包含空列表<string>)会导致控制器中的 List.Count==1



我有一个几乎可以做到这一点的视图:

@foreach (var object in @Model)
{
     //display wishList values
     @Html.ActionLink("Edit Object", "Edit", "Object", @object)
}

"对象"类:

public class Object
{
   public Object()
   {
       this.ObjectList = new List<string>();
   }
   public List<string> ObjectList {get;set;}
   public string Title {get;set;}
}

在View中的foreach内部,Object.ObjectList已初始化,但Count==0;当我把它传给控制器时,动作是这样的:

public ActionResult Edit(Object object)
{
     //do stuff
}

问题是,Edit()操作中的对象正确设置了Title,但List显然有一个新条目(Count==1),它是:

"System.Collections.Generic.List`1[System.String]"

有什么想法吗?

使用显式for循环而不是foreach循环,并通过它们的索引引用元素

看看这个:

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

它有点旧,但仍然适用。

最新更新