View那边类似<input name="model[0].ID" value="100" />
<input name="model[1].ID" value="100" />
<input name="model[2].ID" value="100" />我传给View是一个List<model>的强类型。接收数组的话VIEW应该如何写?

解决方案 »

  1.   

    http://stackoverflow.com/questions/309115/how-can-i-post-an-array-of-string-to-asp-net-mvc-controller-without-a-form
      

  2.   

    你List<model>的长度是固定的?
    用Js获取,到Controller里拆,再转换成你要的List<model>
      

  3.   


    二、基于索引的数组绑定
    对于存在于作为ValueProvider数据源的NameValueCollection/Dictionary<string, object>中的数据项来说,如果它们绑定的对象是一个数组,可以采用相同的名称。这样的Model绑定方式仅仅是用于元素为简单类型的数组。除此之外,也可以采用格式为“[index]”的基于索引的前缀来表示。ValueProvider基于索引的匹配策略也可以通过HtmlHelper<TModel>的模板方法EditorFor来体现。如下面的代码片断所示,在一个Model类型为Contact数组的强类型View中,我们调用HtmlHelper<TModel>的扩展方法EditorFor将数组的前两个元素的相关信息以编辑模式呈现出来。   1: @model Contact[]
       2: @Html.EditorFor(m => m[0].Name)
       3: @Html.EditorFor(m => m[0].PhoneNo)
       4: @Html.EditorFor(m => m[0].EmailAddress)
       5:  
       6: @Html.EditorFor(m => m[1].Name)
       7: @Html.EditorFor(m => m[1].PhoneNo)
      

  4.   


    二、基于索引的数组绑定
    对于存在于作为ValueProvider数据源的NameValueCollection/Dictionary<string, object>中的数据项来说,如果它们绑定的对象是一个数组,可以采用相同的名称。这样的Model绑定方式仅仅是用于元素为简单类型的数组。除此之外,也可以采用格式为“[index]”的基于索引的前缀来表示。ValueProvider基于索引的匹配策略也可以通过HtmlHelper<TModel>的模板方法EditorFor来体现。如下面的代码片断所示,在一个Model类型为Contact数组的强类型View中,我们调用HtmlHelper<TModel>的扩展方法EditorFor将数组的前两个元素的相关信息以编辑模式呈现出来。   1: @model Contact[]
       2: @Html.EditorFor(m => m[0].Name)
       3: @Html.EditorFor(m => m[0].PhoneNo)
       4: @Html.EditorFor(m => m[0].EmailAddress)
       5:  
       6: @Html.EditorFor(m => m[1].Name)
       7: @Html.EditorFor(m => m[1].PhoneNo)
    我需要这种方式,但实现不了……,人家说这样
      

  5.   

    @foreach(var item in @model)
    {
    <input name="@item.ID" value="100"/>}