剑道ui网格嵌套模型问题

时间:2014-08-06 14:55:18

标签: c# asp.net-mvc kendo-ui kendo-grid

我有一个asp.net mvc应用程序。我有这样的模型:

public class ApplicationViewModel {
    public int ID { get; set; }
    public string City{ get; set; }
    public string Country { get; set; }
    public List<InventoryViewModel> InventoryList { get; set; }
    public string Statu { get; set; }
}

InventoryViewModel:

public class InventoryViewModel
{
    public int ID { get; set; }
    public string Brand { get; set; }
    public int Number { get; set; }
    public string Description { get; set; }
}

我的项目中有申请表。我正在使用类似向导的结构,以便逐步实现应用程序。其中一个步骤仅包含库存信息。一个应用程序有多个库存。为此,我尝试使用kendo ui网格组件。

我的视图适用于ApplicationViewModel。在库存步骤中,我有这个kendo网格:

@(Html.Kendo().Grid<InventoryViewModel>()
    .Name("grid")
    .Columns(columns =>
    {
        columns.Bound(model => model.ID).Width(25);
        columns.Bound(model => model.Brand).Width(50);
        columns.Bound(model => model.Number).Width(25);
        columns.Bound(model => model.Description).Width(50);
        columns.Command(command =>
        {
            command.Edit();
        }
    ).Title("Inventory").Width(200);
    })
    .ToolBar(toolbar =>
    {
        toolbar.Create();
        toolbar.Save();
    })
    .Editable(editable => editable.Mode(GridEditMode.InCell))
    .Scrollable()
    .HtmlAttributes(new { style = "height:430px;" })
    .DataSource(datasource => datasource
        .Ajax()
        .Batch(true)
        .Model(model =>
        {
            model.Id(p => p.ID);
            model.Field(p => p.ID).Editable(false);

        })
        .PageSize(20)
        .Create(create => create.Action("CreateInventory", "Application"))
        .Destroy(destoy => destoy.Action("DeleteInventory", "Application"))
        .Read(read => read.Action("ReadInventory", "Application"))
        .Update(update => update.Action("UpdateInventory", "Application"))
    )
)

对于创建库存,我有这个控制器方法:

public ActionResult CreateInventory([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")] IEnumerable<InventoryViewModel> model)
{
    if (model != null && ModelState.IsValid)
    {
        //service.Create(model);
    }

    return Json(new[] { model }.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet);
}

此代码正常运行(我使用&#39; model&#39;参数获取广告资源信息)。但我需要将此库存信息绑定到ApplicationViewModel内的InventoryViewModel。因为在完成所有步骤后,当我发布申请表时,我需要申请信息和库存清单信息。

但是当我提交申请表时,ApplicationViewModel中的InventoryList会以null形式出现。我怎样才能做到这一点?

0 个答案:

没有答案