Tutorial :Stack trace error



Question:

I am having the error message:I can`t figure out what is wrong. Can someone help me please. Thanks.

Stack Trace:

[NotSupportedException: Collection is read-only.]
System.SZArrayHelper.Clear() +56
System.Web.Mvc.CollectionHelpers.ReplaceCollectionImpl(ICollection`1 collection, IEnumerable newContents) +125

ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184

My code is: Model:

 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; }      }    }  

Controller

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();          }      }  

Views

    <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>  


Solution:1

I usually use lists instead of vectors in models:

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

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »