2015-02-02 2 views
0

Аналогичным образом на странице Kendo UI Grid returns JSON to browser (using MVC) страница Kendo UI Grid возвращает чистый JSON вместо страницы. Я выполнил шаги, упомянутые на этой странице, но это не решило проблему. Вот и контроллер View ниже:Kendo UI Grid возвращает только чистый JSON

Контроллер:

public ActionResult _Index([DataSourceRequest] DataSourceRequest request) 
{ 
    var myDatabase = new MyDataContext(); 
    var students = northwind.Students; 

    // Avoid the circular reference by creating a View Model object and skiping the Customer property 
    var result = students.ToDataSourceResult(request, o => new 
    { 
     ID = o.ID, 
     Name = o.Name, 
     Surname = o.Surname 
    }); 

    return Json(result, JsonRequestBehavior.AllowGet); 
} 


Вид:

@model IEnumerable<Student> 
@(Html.Kendo().Grid<Student>().Name("Grid") 
.Columns(columns => 
{ 
    columns.Bound(o => o.ID); 
    columns.Bound(o => o.Name); 
    columns.Bound(o => o.Surname); 
}) 
.Pageable() 
.Sortable() 
.DataSource(dataSource => dataSource.Ajax().Model(model => model.Id(p => p.ID)).Read("_Index", "Home"))) 

Когда я смотрю на скрипты и секции Css на поджигатель, есть нет скрипта и нет css. Я не уверен, в чем причина этого. Как я могу решить проблему? Заранее спасибо.

+0

Вы уверены, добавили вас JS, CSS и длл для кендо? – Razack

+0

Да, потому что это приложение Kendo, и все необходимые файлы javascript и css автоматически добавляются в проект. Кроме того, я создал другой макет и добавил те же файлы к этому макету, что и мой просмотр. Но это не имело никакого смысла. Любая помощь будет оценена ... –

ответ

0

Наконец-то я обнаружил, что мне понадобилось два ActionResult вместо одного, как в MVC по умолчанию. Таким образом, для тех, кто сталкивается с этой проблемой после использования, решает проблему:

Вы уверены, что в вашем контроллере есть 2 определения (одно для просмотра, другое для получения данных), а View вызывает другое, как показано ниже?

HomeController

public ActionResult AjaxBinding() 
{ 
    return View(); 
} 

public ActionResult AjaxBinding_Read([DataSourceRequest] DataSourceRequest request) 
{ 
    var dataContext = new SampleEntities(); 

    IQueryable<OrderViewModel> result = dataContext.Orders.Select(o => new OrderViewModel 
    { 
     OrderID = o.OrderID, 
     ShipCity = o.ShipCity, 
     ShipCountry = o.ShipCountry, 
     ShipName = o.ShipName 
    }); 
return Json(result, JsonRequestBehavior.AllowGet);  
} 



Посмотреть

@(Html.Kendo().Grid<Kendo.Mvc.Examples.Models.Order>() 
    .Name("Grid") 
    .Columns(columns => { 
     columns.Bound(o => o.OrderID).Groupable(false); 
     columns.Bound(o => o.ShipCity); 
     columns.Bound(o => o.ShipCountry); 
     columns.Bound(o => o.ShipName); 
    }) 
    .Pageable() 
    .Sortable() 
    .Filterable() 
    .Scrollable() 
    .Groupable() 
    .DataSource(dataSource => dataSource 
     .Ajax() 
     .Read(read => read.Action("AjaxBinding_Read", "Home")) 
    ) 
)