Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 获取使用参数返回特定可查询项的ActionResult时出现问题_Asp.net Mvc_Telerik Mvc - Fatal编程技术网

Asp.net mvc 获取使用参数返回特定可查询项的ActionResult时出现问题

Asp.net mvc 获取使用参数返回特定可查询项的ActionResult时出现问题,asp.net-mvc,telerik-mvc,Asp.net Mvc,Telerik Mvc,我试图使用给定的参数(年份、Qtr、Div)获取此操作结果,并仅返回这些结果。我在其他ActionResults中使用类似的东西,但它们不会以Json返回结果。我不太确定我需要做什么才能得到这个结果,只返回与给定参数匹配的结果。它所做的是返回所有记录,而不是按参数过滤它们 public ActionResult GLAcctsISDs_Read([DataSourceRequest] DataSourceRequest request, int? Year, int? Qtr, str

我试图使用给定的参数(年份、Qtr、Div)获取此操作结果,并仅返回这些结果。我在其他ActionResults中使用类似的东西,但它们不会以Json返回结果。我不太确定我需要做什么才能得到这个结果,只返回与给定参数匹配的结果。它所做的是返回所有记录,而不是按参数过滤它们

    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);
    }
提前感谢您的帮助。

尝试将“result”对象序列化为json

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

return Json(jsonString);

对于任何想知道如何做到这一点的人,请点击这里: 参数作为年份、qtr和div传递给控制器:

 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"))

放置一个断点,查看是否为
年份
Qtr
Div
参数获取不可为空的值。是的,出于某种原因,我获取的值为空。我的语法不在我列出参数的顶部。地址链接显示他们通过了……我知道了。Telerik的MVC用户界面与普通的MVC代码完全不同。是的,这不会,因为你必须首先检查为什么会得到空值。