2013-02-27 6 views
1

Я использую этот код, чтобы получить мои данные и подтолкнуть ее к Кендо СеткаКендо Сетка DataSourceRequest ArgumentException пытается разобраться

public ActionResult Read([DataSourceRequest] DataSourceRequest request) 
{ 
    return Json(GetData(request), JsonRequestBehavior.AllowGet); 
} 

private DataSourceResult GetData(DataSourceRequest request) 
{ 
    var Items = _db.Item.Local.ToDataSourceResult(request, x => new 
    { 
     ID = x.ID, 
     Title = x.Title, 
     LastEdited = x.User.LoginName, 
     Category = x.CategoryItem.Title, 
     DateEdited = x.DateEdited 
    }); 
    return Items; 
} 

используя не модели в представлении для сетки, позволяя сетки во всем разберется. Все это работает, и я тоже могу просматривать страницы. Однако в тот момент я добавляю в методе сортировки он бросает мне это исключение, например:

Invalid property or field - 'Category' for type: Item 

И каждый последующий запрос не потому, что он имеет вид на DataSourceRequest, пока не перезагрузите страницу, чтобы очистить запрос. Я что-то пропустил здесь с точки зрения конфигурации, которую мне нужно добавить к этому коду?

+0

да, потому что ваша сетевая сказать '' DataSourceResult', что "я буду сортировать по категориям" '. Но в вашем DataSource (_db.Item.Local) у него нет поля с именем '' Category''. (ваш x => новый {Category = x.CategoryItem.Title,} просто выберите «Категория» после завершения «Сортировки»). Итак, вы можете попробовать что-то вроде: _db.Item.Local.Select (x => new {Category = x.CategoryItem.Title,}). ToDataSourceResult (запрос). – hungdoan

+0

Ах, конечно! Это фиксировало это, если вы отправите его в ответ, я помету его как один – Perry

ответ

5

Да, потому что ваша сетка указывает DataSourceResult, что "I'll sort by Category ".

Но в вашем DataSource (_db.Item.Local), у него нет поля под названием «Категория».

(ваш x => новый {Category = x.CategoryItem.Title,} просто выберите категорию после завершения «Сортировки»).

Таким образом, вы можете попробовать что-то вроде:

_db.Item.Local.Select(x=> new { 
    Category = x.CategoryItem.Title 
    }).ToDataSourceResult(request) 

 Смежные вопросы

  • Нет связанных вопросов^_^