如何在Kendo Grid中创建通用CRUD操作?

时间:2017-03-21 15:13:06

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

我正在开发一个包含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"))

操作方法中,我找不到设置类/实体类型(状态,国家/地区,条形码等)的选项。感谢您的任何建议或帮助。

0 个答案:

没有答案