将动态表绑定到mvc中的模型

时间:2015-10-14 14:24:31

标签: c# asp.net-mvc-4 model-binding

我将这两个类用作我的视图模型:

public class CreateVm
{
    public int Id {get; set;}
    public string Name {get; set;}
    public ICollection<ItemVm> Items {get; set;}
}

public class ItemVm
{
    public int Id {get; set;}
    public string Name {get; set;}
    public int Quantity {get; set;}
}

然后我有一个看起来像这样的视图,为简单起见删除了一些元素:

@model CreateVm
@Html.EditorFor(m => m.Id)
@Html.EditorFor(m => m.Name)

<input type="button" id="myButton">

<table id="myTable">
<thead></thead>
<tbody></tbody>
<table>

和一个javascript文件:

("#myButton").click(function(){
   $.ajax({
      url: "/Item/AddItem/",
      data: 'html',
      success: function(data){
         $("#myTable").append(data);
      }         
   });
});

我的控制器基本上只是返回一个包含表格行的局部视图:

public ItemController : Controller
{
   public ActionResult AddItem()
   {
      var tableRow = new ItemVm();
      return PartialView("_AddItem", tableRow);
   }
}

局部视图:

@model ItemVm

@EditorFor(m => m, null, "Items")

编辑器模板:

@model ItemVm

<tr>
<td>@Html.EditorFor(m => m.Name)</td>
<td>@Html.EditorFor(m => m.Quantity)</td>
</tr>

现在的问题是,这并没有为mvc绑定到工作生成所需的输入,即<input name="[0].Name">,我怎样才能让编辑器模板(或其他一些元素)生成这些类型的输入,以便在发布表单时自动绑定到CreateVm

0 个答案:

没有答案