2016-04-11 3 views
0

Я пытаюсь получить этот Результат Действия, чтобы использовать предоставленные параметры (Год, Qtr, Div) и возвращать только те результаты. Я использую что-то подобное этому в других ActionResults, но они не возвращают результаты в Json. Я не совсем уверен, что мне нужно сделать, чтобы получить этот результат, чтобы вернуть только результаты, соответствующие заданным параметрам. То, что он делает, возвращает все записи, а не фильтрует их по параметрам.Имея проблему с получением ActionResult, который использует параметры для возврата определенных объектов запроса

public ActionResult GLAcctsISDs_Read([DataSourceRequest] DataSourceRequest request, int? Year, int? Qtr, string Div) 
    { 
     var glacctsisds = db.GLAcctsISDs.AsQueryable(); 
     if (Year.HasValue) 
      glacctsisds = glacctsisds.Where(x => x.Year == Year); 
     if (Qtr.HasValue) 
      glacctsisds = glacctsisds.Where(x => x.Qtr == Qtr); 
     if (!string.IsNullOrEmpty(Div)) 
      glacctsisds = glacctsisds.Where(x => x.Div == Div); 

     DataSourceResult result = glacctsisds.ToDataSourceResult(request, gLAcctsISD => new { 

      ID = gLAcctsISD.ID, 
      Div = gLAcctsISD.Div, 
      Year = gLAcctsISD.Year, 
      Qtr = gLAcctsISD.Qtr, 
      GLAcct = gLAcctsISD.GLAcct, 
      GLDescr = gLAcctsISD.GLDescr, 
      TBDebit = gLAcctsISD.TBDebit, 
      TBCredit = gLAcctsISD.TBCredit, 
      IncExpAdjDebit = gLAcctsISD.IncExpAdjDebit, 
      IncExpAdjCredit = gLAcctsISD.IncExpAdjCredit, 
      AdlTrialDebit = gLAcctsISD.AdlTrialDebit, 
      AdjTrialCredit = gLAcctsISD.AdjTrialCredit, 
      RemainExpDebit = gLAcctsISD.RemainExpDebit, 
      PendingIncomeCredit = gLAcctsISD.PendingIncomeCredit, 
      ProjRemainExpDebit = gLAcctsISD.ProjRemainExpDebit, 
      NetIncomeCredit = gLAcctsISD.NetIncomeCredit, 
      DivGLNotes = gLAcctsISD.DivGLNotes 
     }); 


     return Json(result); 
    } 

Заранее благодарим за помощь.

+1

поставить точку останова и убедиться в том, что вы получаете значение NON NULLABLE для 'Year',' 'Qtr' и параметров Div'. – Shyju

+0

Да, я почему-то получаю нули. Мой синтаксис не прав наверху, где я перечисляю параметры. Адресная ссылка показывает, что они передаются ..... http: // localhost: 12153/KendoGLAcctISD/KenodGLAcctISDList? Year = 2015 & Qtr = 3 & Div = ISD –

+0

Я понял это. Пользовательский интерфейс Telerik для MVC представляет собой совершенно другое животное, чем обычный код MVC. –

ответ

0

попробуйте сериализовать «результат» объекта json.

string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(result); 

return Json(jsonString); 
+0

Нет, это не сработало –

+0

Да, это не так, потому что вы должны сначала проверить, почему вы получаете нули. – Saif

0

Для тех, кто хочет знать, как сделать это здесь вы идете: Параметры передаются к контроллеру в год, четв, и ДИВ:

public ActionResult KenodGLAcctISDList(int? year, int? qtr, string div) 
    { 
     ViewBag.YYear = year; 
     ViewBag.QQtr = qtr; 
     ViewBag.DDiv = div; 
     return View(); 
    } 

    public ActionResult GLAcctsISDs_Read([DataSourceRequest]DataSourceRequest request) 
    { 

     var glacctsisds = db.GLAcctsISDs.AsQueryable(); 
     DataSourceResult result = glacctsisds.ToDataSourceResult(request, gLAcctsISD => new { 

      ID = gLAcctsISD.ID, 
      Div = gLAcctsISD.Div, 
      Year = gLAcctsISD.Year, 
      Qtr = gLAcctsISD.Qtr, 
      GLAcct = gLAcctsISD.GLAcct, 
      GLDescr = gLAcctsISD.GLDescr, 
      TBDebit = gLAcctsISD.TBDebit, 
      TBCredit = gLAcctsISD.TBCredit, 
      IncExpAdjDebit = gLAcctsISD.IncExpAdjDebit, 
      IncExpAdjCredit = gLAcctsISD.IncExpAdjCredit, 
      AdlTrialDebit = gLAcctsISD.AdlTrialDebit, 
      AdjTrialCredit = gLAcctsISD.AdjTrialCredit, 
      RemainExpDebit = gLAcctsISD.RemainExpDebit, 
      PendingIncomeCredit = gLAcctsISD.PendingIncomeCredit, 
      ProjRemainExpDebit = gLAcctsISD.ProjRemainExpDebit, 
      NetIncomeCredit = gLAcctsISD.NetIncomeCredit, 
      DivGLNotes = gLAcctsISD.DivGLNotes 
     }); 


     return Json(result); 
    } 

Затем перешел к мнению как Viewbags и отсортирован по коду KendoUI Сетка

.Read(read => read.Action("GLAcctsISDs_Read", "KendoGLAcctISD")) 
     .Filter(filter => 
       { 
        filter.Add(f => f.Year).IsEqualTo(ViewBag.YYear); 
        filter.Add(f => f.Qtr).IsEqualTo(ViewBag.QQtr); 

       }) 
     .Update(update => update.Action("GLAcctsISDs_Update", "KendoGLAcctISD")) 

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

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