我正在开发一个包含ASP MVC 5,Kendo UI,Entity Framework和图层的项目;但是,我正在努力简化如何简化更新和创建的通用功能。
通常使用Kendo UI,您可以在更新上设置类/实体类型( ProductViewModel ),读取,删除或创建方法:
public ActionResult Editing_Create([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<ProductViewModel> products)
尽管如此,我正在更新一堆 Dictionaries (状态,条形码,国家/地区等)。我有至少10个字典,它们具有相同的结构( ID ,名称和 IsEnabled ),唯一的区别是表名。我写了一些代码来尝试概括Update和Create进程,但是我无法调用它们。
这是我的查看:
@(Html.Kendo().Grid((IEnumerable<Example.Business.Status>)Model.statusData)
.Name("gridStatus")
.Columns(columns =>
{
columns.Bound(p => p.Name);
columns.Bound(p => p.IsEnabled).Title("Enable");
})
.ToolBar(toolBar =>
{
toolBar.Create();
toolBar.Save();
})
.Editable(editable => editable.Mode(GridEditMode.InCell))
.Scrollable()
.Pageable()
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.ServerOperation(true)
.Model(model =>
{
model.Id(p => p.ID);
model.Field(p => p.isActive).DefaultValue(true);
})
.Create(create => create.Action("Generic_Create", "Dictionaries"))
.Update(update => update.Action("Generic_Update", "Dictionaries"))
)
)
这些是我试图概括的功能:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Generic_Update<T>([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<T> genericData)
{
if (statusData != null && ModelState.IsValid)
{
foreach (var status in genericData)
{
}
}
return null;
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Generic_Create<T>([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<T> genericData)
{
var results = new List<T>();
if (genericData != null && ModelState.IsValid)
{
foreach (var generic in genericData)
{
}
}
return null;
}
主要挑战是:如何从View中调用/设置通用的Create或Update方法?
.Create(create => create.Action("Generic_Create", "Dictionaries"))
.Update(update => update.Action("Generic_Update", "Dictionaries"))
在操作方法中,我找不到设置类/实体类型(状态,国家/地区,条形码等)的选项。感谢您的任何建议或帮助。