你调用的对象是空的。用于Web API中的字典会话

时间:2016-05-19 05:20:03

标签: c# asp.net-web-api

我使用mvc web api作为离子项目的背景api(使用angularjs),并希望使用会话将数据传递到字典,以便我可以从总数据中获取有限数据并在第一页显示它们,然后下一页数据以及滚动,请帮帮我

[HttpGet]
[Route("user/takenCourseDetails")]
[ResponseType(typeof(TeachMatEventsModelView))]
public IHttpActionResult takenCourseDetails(int masterCourseId, int secId, int page, int PageSize, int IsPaging)
        {
            if (IsPaging == 0)
            {
                if (page == 0)
                {
                    LoadAllEventToSession(masterCourseId, secId);

                    var eventList = GetProductsForPage(page);
                    return Ok(eventList);
                }
            }
            return Ok();
        }

public void LoadAllEventToSession(int masterCourseId, int secId)
        {

            if (db.View_TeachMatEventList.Where(m => m.MasterCourseId == masterCourseId && m.SectionId == secId).Any())
            {
                var allEventList = db.View_TeachMatEventList.Where(m => m.MasterCourseId == masterCourseId && m.SectionId == secId
                   && m.HasParent==false && m.Status == 1).OrderBy(m => m.EventNumber).ToList();

                int cmnIndex = 1;

                var session = HttpContext.Current.Session;
                session["event"] = allEventList.ToDictionary(m => cmnIndex++, m => m);
                session["totalEvent"] = allEventList.Count();

            }

        }
 public Dictionary<int, TeachMatEventsModelView> GetProductsForPage(int pageNum)
        {
            var session = HttpContext.Current.Session;
            Dictionary<int, TeachMatEventsModelView> eventList= (session["event"] as Dictionary<int, TeachMatEventsModelView>);
            int from = (pageNum * ShowEventPerPage);
            int to = from + ShowEventPerPage;//ShowEventPerPage=5;
            return eventList.Where(x => x.Key > from && x.Key <= to).OrderBy(x => x.Key).ToDictionary(x => x.Key, x => x.Value);
        }

错误: error

0 个答案:

没有答案