我有一个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形式出现。我怎样才能做到这一点?