【问题标题】:Stack trace error堆栈跟踪错误
【发布时间】:2010-07-13 14:40:43
【问题描述】:

我收到错误消息:我不知道出了什么问题。有人能帮助我吗。谢谢。

堆栈跟踪:

[NotSupportedException: 集合是 只读。]
System.SZArrayHelper.Clear() +56
System.Web.Mvc.CollectionHelpers.ReplaceCollectionImpl(ICollection`1 集合,IEnumerable newContents) +125

ExecuteStep(IExecutionStep 步骤, 布尔和完成同步)+184

我的代码是: 型号:

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

}

控制器

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

观看次数

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

【问题讨论】:

  • 我怀疑问题与从 &lt;%foreach (var category in Model.Categories) 返回的内容有关。更准确地说,'Model.Categories' 部分,您的代码 sn-p 没有显示定义。也许澄清一下?

标签: asp.net-mvc


【解决方案1】:

我通常在模型中使用列表而不是向量:

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

【讨论】:

    猜你喜欢
    • 2018-09-19
    • 1970-01-01
    • 2016-06-21
    • 2017-05-19
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多