从View - &gt;传递整个对象实例(包含空List <string>)控制器在Controller </string>中导致List.Count == 1

时间:2013-08-04 10:42:34

标签: asp.net-mvc razor asp.net-mvc-routing

我认为这几乎是这样的:

@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]"

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

使用显式for循环而不是foreach循环,并按索引引用元素

看看这个:

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

它有点陈旧但仍适用。