Syncfusion MVC Grid 只从 OData 源读取数据

Syncfusion MVC Grid only reads data from OData source

在我的应用程序中,ASP.NET MVC 4、EntityFramework 和 Syncfusion MVC 控件我遇到了 MVC Grid 问题。 我使用 Web API 创建了 OData 源:

public class DriversController : ODataController
{
    private ApplicationDbContext db = new ApplicationDbContext();

    // GET: odata/Drivers
    [EnableQuery]
    public IQueryable<Driver> GetDrivers()
    {
        return db.Drivers;
    }
...
}

这有效,已通过 Postman 进行测试。获取数据并在数据库中修改它。 但是我的网格:

@model dynamic

@(Html.EJ().Grid<object>("DriversGrid")
    .Datasource("http://localhost:26168/odata/Drivers")
    .Columns(col =>
    {
        col.Field("Id").HeaderText("ID").IsIdentity(true).IsPrimaryKey(true).AllowFiltering(false).Add();
        col.Field("Name").HeaderText("Nazwa").Add();
        col.Field("DriverId").HeaderText("ID pastylki").Add();
    })
    .AllowFiltering()
    .FilterSettings(d => d.FilterType(FilterType.Menu))
    .AllowSorting()
    .ClientSideEvents(events =>
    {
        events.EndAdd("onEndAdd");
       // events.Load("onLoad");
    })
    .EditSettings(edit => { edit.AllowAdding().AllowDeleting().AllowEditing(); })
            .ToolbarSettings(toolbar =>
            {
                toolbar.ShowToolbar().ToolbarItems(items =>
                {
                    items.AddTool(ToolBarItems.Add);
                    items.AddTool(ToolBarItems.Edit);
                    items.AddTool(ToolBarItems.Delete);
                    items.AddTool(ToolBarItems.Update);
                    items.AddTool(ToolBarItems.Cancel);
                });
            })
)

<script>
    function onEndAdd(sender, args) {
        var gridObj = $("#DriversGrid").ejGrid("instance");
        gridObj.refreshContent();
    };
</script>

仅从控制器读取数据,网格上的操作仅调用 public IQueryable<Driver> GetDrivers()。不会调用控制器上的其他操作。 Grid viually 编辑、删除和插入数据但不调用 odata 源来存储它。 我做错了什么?

应从

更改数据源
.Datasource("http://localhost:26168/odata/Drivers")

.Datasource(d => d.URL("http://localhost:26168/odata/Drivers"))

这很好用。