我的kendo网格为空,但是在调试时我看到控制器正在发送正确的数据,但是网格仍然是空的。
这是我的观点
@{
Layout = "~/Views/Shared/_Layout.cshtml";
ViewData["Title"] = "LoadSignatory";
}
<h1>Signatory</h1>
<p>
<a asp-action="SaveSignatory">Create New</a>
</p>
@(Html.Kendo().Grid<M19_GradSkopje_GIS.Models.Responses.Signatory>()
.Name("SignatoryGrid")
.Scrollable(scrollable => scrollable.Height(540))
.Reorderable(reorderable => reorderable.Columns(true))
.Resizable(resizable => resizable.Columns(true))
.Pageable()
.Filterable()
.Sortable()
.Groupable()
.ColumnMenu()
.Columns(columns =>
{
columns.Bound(o => o.SignatoryID).Width(150).Locked(true).Lockable(false);
columns.Bound(o => o.Name).Width(300);
columns.Bound(o => o.IsActive).Width(300);
columns.Bound(o => o.Id).Width(300).Locked(true);
})
.DataSource(dataSource => dataSource.Ajax().Read(read => read.Action("LoadSigs", "Signatory")))
)
<script>
$(document).ready(function () {
var roleGrid = $("#SignatoryGrid").data("kendoGrid");
roleGrid.dataSource.read();
});
</script>
这是我的控制器
public IActionResult LoadSignatory()
{
string conString = _configuration.GetConnectionString("strConnectionString");
var con = new SqlConnection(conString);
con.Open();
SqlCommand cmd = new SqlCommand("gdi_LoadAllSignatory", con);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
List<Signatory> results = new List<Signatory>();
using (SqlDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
{
Signatory newItem = new Signatory();
newItem.SignatoryID = dr.GetInt16(0);
newItem.Name = dr.GetString(1);
newItem.IsActive = dr.GetBoolean(2);
results.Add(newItem);
}
}
return View(results);
}
public ActionResult LoadSigs([DataSourceRequest] DataSourceRequest request)
{
string conString = _configuration.GetConnectionString("strConnectionString");
var con = new SqlConnection(conString);
con.Open();
SqlCommand cmd = new SqlCommand("gdi_LoadAllSignatory", con);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
List<Signatory> results = new List<Signatory>();
using (SqlDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
{
Signatory newItem = new Signatory();
newItem.SignatoryID = dr.GetInt16(0);
newItem.Name = dr.GetString(1);
newItem.IsActive = dr.GetBoolean(2);
results.Add(newItem);
}
}
return Json(results.ToDataSourceResult(request));
}
第一个方法返回一个视图,因为当我尝试仅返回JSON时,它仅显示json。我在做什么错了?