Stapelverfolgungsfehler - asp.net-mvc

Ich habe die Fehlermeldung: Ich kann nicht herausfinden, was falsch ist. Kann mir bitte jemand helfen? Vielen Dank.

Stack Trace:

[NotSupportedException: Sammlung ist schreibgeschützt.]
System.SZArrayHelper.Clear () +56
System.Web.Mvc.CollectionHelpers.ReplaceCollectionImpl (ICollection`1 Sammlung, IEnumerable newContents) +125

ExecuteStep (IExecutionStep-Schritt, Boolean & abgeschlossenSynchron) +184

Mein Code ist: Modell:

 namespace TestArrays.Models
{
public class Person
{
public CategoriesRow[] Categories { get; set; }
public Person()
{

Categories = new CategoriesRow[1];
Categories[0] = new CategoriesRow();
Categories[0].Name = "Bug";
Categories[0].ID = "0";
}
}

public class CategoriesRow
{
public String Name { get; set; }
public String ID { get; set; }
}

}

Regler

public ActionResult Create()
{
return View(new Person());
}

//
// POST: /Person/Create

[HttpPost]
public ActionResult Create(Person person)
{
try
{
// TODO: Add insert logic here

return RedirectToAction("Index");
}
catch
{
return View();
}
}

Ansichten

    <form id="Form" action="<%=Url.Action("Create",new{Action="Create"}) %>" method="post" enctype="multipart/form-data">
<div id="categoriessection" >
<h3>Categories</h3>
<ul class= "list"  id="categoryList">
<%if (Model.Categories!=null) {%>
<%int count = 0; %>
<%foreach (var category in Model.Categories)
{%>
<%if (!String.IsNullOrEmpty(category.Name))
{%>
<li><input type="hidden" name="Categories.Index" value="<%=count%>" />
<input type="text" value="<%=category.Name%>"  name="Categories[<%=count%>].Name" style="width:280px"/>
<input type="hidden" value="<%=category.ID%>"  name="Categories[<%=count++%>].ID" style="width:280px"/>
<input type="button" value = "Delete"/>
</li>
<%}
%>
<%} %>
<%} %>
<li> <input type="hidden" name="Categories.Index" value="value0" />
<input type="text" value=""  name="Categories[value0].Name" style="width:280px"/>
<input type="hidden" value=""  name="Categories[value0].ID" style="width:280px"/>
<input type="button"  value= "Add" />
</li>
</ul>
</div>

<div>
<input  type ="submit" value="Save" id="save" />
</div>
</form>

Antworten:

5 für die Antwort № 1

Ich verwende normalerweise Listen anstelle von Vektoren in Modellen:

public List<CategoriesRow> Categories { get; set; }