Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何将模型用作KendoUIGrid的数据源?_Asp.net Mvc_View_Model_Telerik_Kendo Grid - Fatal编程技术网

Asp.net mvc 如何将模型用作KendoUIGrid的数据源?

Asp.net mvc 如何将模型用作KendoUIGrid的数据源?,asp.net-mvc,view,model,telerik,kendo-grid,Asp.net Mvc,View,Model,Telerik,Kendo Grid,我只得到一个网格,里面没有数据。我是MVC新手,无法找到如何仅使用传递到视图页面的模型将数据添加到网格中。下面是我使用的代码 控制器代码: public ActionResult List() { List<CustomerModel> list = new List<CustomerModel>(); for (int i = 0; i < 7; i++) { CustomerMo

我只得到一个网格,里面没有数据。我是MVC新手,无法找到如何仅使用传递到视图页面的模型将数据添加到网格中。下面是我使用的代码

控制器代码:

  public ActionResult List()
    {
        List<CustomerModel> list = new List<CustomerModel>();
        for (int i = 0; i < 7; i++)
        {
            CustomerModel model = new CustomerModel();
            model.Id = 1;
            model.Name = "Alice";
            model.Address = "Blk "+i;
            model.PostalCode = ""+i+i+i;
            model.Email = i+"@yahoo.com";
            model.TelephoneNumber = i + i + i + i + i + i+"";
            list.Add(model);
        }


        return View(list);
    }
    public ActionResult Read()
    {
        List<CustomerModel> list = new List<CustomerModel>();
        for (int i = 0; i < 7; i++)
        {
            CustomerModel model = new CustomerModel();
            model.Id = 1;
            model.Name = "Alice";
            model.Address = "Blk " + i;
            model.PostalCode = "" + i + i + i;
            model.Email = i + "@yahoo.com";
            model.TelephoneNumber = i + i + i + i + i + i + "";
            list.Add(model);
        }


        return View(list);
    }
public ActionResult List()
{
列表=新列表();
对于(int i=0;i<7;i++)
{
CustomerModel模型=新CustomerModel();
模型Id=1;
model.Name=“Alice”;
model.Address=“Blk”+i;
model.PostalCode=”“+i+i+i;
model.Email=i+“@yahoo.com”;
model.TelephoneNumber=i+i+i+i+i+i+“”;
列表。添加(模型);
}
返回视图(列表);
}
公共行动结果读取()
{
列表=新列表();
对于(int i=0;i<7;i++)
{
CustomerModel模型=新CustomerModel();
模型Id=1;
model.Name=“Alice”;
model.Address=“Blk”+i;
model.PostalCode=”“+i+i+i;
model.Email=i+“@yahoo.com”;
model.TelephoneNumber=i+i+i+i+i+i+“”;
列表。添加(模型);
}
返回视图(列表);
}
查看代码:

@using TKMVC.Models
@model IEnumerable<CustomerModel>


@(Html.Kendo().Grid<CustomerModel>()
    .Name("grid")
    .DataSource(dataSource => dataSource
        .Ajax()
        .ServerOperation(true)
        .Model(model =>
        {
            model.Id(p => p.Id);
            model.Field(p => p.Id).Editable(false);
        })
        .Read(read => read.Action("Read", "Home"))
    )
)
<div class="clearfix"></div>
@使用TKMVC.Models
@模型IEnumerable
@(Html.Kendo().Grid())
.名称(“网格”)
.DataSource(DataSource=>DataSource
.Ajax()
.ServerOperation(真)
.Model(Model=>
{
model.Id(p=>p.Id);
model.Field(p=>p.Id).可编辑(false);
})
.Read(Read=>Read.Action(“Read”,“Home”))
)
)

您混合了本地和ajax数据绑定,并且没有在网格中定义任何列

尝试将模型传递到网格中,定义网格列并从数据源中删除读取请求。在您的案例中,最可能需要关闭服务器操作

您的网格语句应该如下所示:

@(Html.Kendo().Grid(模型)
.名称(“网格”)
.列(列=>
{
columns.Bound(m=>m.Id);
columns.Bound(m=>m.Name);
})
.DataSource(DataSource=>DataSource
.Ajax()
.ServerOperation(错误)
.Model(Model=>
{
model.Id(p=>p.Id);
model.Field(p=>p.Id).可编辑(false);
})
)
)

我在where.DataSource(DataSource=>DataSource)行中看到“无法将lambda表达式转换为类型‘string’,因为它不是委托类型”这意味着什么?不知道。这应该行得通。这条语句中唯一的字符串是网格名称。与Telerik示例的唯一区别是模型定义。如果这真的是个问题,它可能是个bug,值得向Telerik报告。