Thursday, July 28, 2016

Bind Grid To Model, but grid does not display, a prompt to download json data occurs instead

I was returning Json(list) from the controller causing this issue, it was resolved by returning View(list) instead, full code for functional system follows:
CSHTML:
@using Kendo.Mvc.UI

@model IEnumerable<DynaResearchPortal.Models.ImportDTO>






@{


ViewBag.Title = "PreviewData";

Layout = "~/Views/Shared/_LayoutPage.cshtml";






}


<h2>Preview Data</h2>





@(Html.Kendo().Grid(Model)


.Name("PreviewGrid")






.Columns(c =>


{


c.Bound(t => t.ColumnName);


c.Bound(t => t.Ordinate);


}


)





)
CONTROLLER:
public ActionResult PreviewData(string filename)






{


List<ImportDTO> list = new List<ImportDTO>();

ISheet sheet;

using (FileStream file = new FileStream(filename, FileMode.Open, FileAccess.Read))






{


HSSFWorkbook wb = new HSSFWorkbook(file);






sheet = wb.GetSheetAt(0);


//Get the Title row:


IRow headerRow = sheet.GetRow(0);

int cellCount = headerRow.LastCellNum;

for (int i = headerRow.FirstCellNum; i < cellCount; i++)






{


ImportDTO dto = new ImportDTO();






dto.ColumnName = headerRow.GetCell(i).StringCellValue.Trim();


dto.Ordinate = i;


list.Add(dto);


}


}


return View(list);






}