2012-05-13 49 views
3

私のデータベースからイベントを取得しようとしていて、そのイベントでfullcalendarを設定しようとしています。 イベントは表示されません。asc.netとfullcalendarデータベースからフェッチされたイベントが表示されない

を:イベントが、この場合、私はこれを行う場合は、イベントが表示されている

 public JsonResult getEvents() 
    { 
     UserProfile user = getUserProfile(); 
     List<Calendar> events = db.Calendars.Where(c => c.userID == user.userID).ToList(); 
     IList<calendarPost> tasksList = new List<calendarPost>(); 
     foreach (Calendar eve in events) 
     { 
      tasksList.Add(new calendarPost 
      { 
       id = eve.recordID, 
       title = eve.recordDescription, 
       start = ToUnixTimespan(eve.startTime), 
       end = ToUnixTimespan(eve.endTime), 
       url = "www.google.com" 
       //  }); 
       // } 
      }); 
     } 
     return Json(tasksList.ToArray(), JsonRequestBehavior.AllowGet); 

を示すされていません。私は私のコントローラにテストのためにイベントを作成するとき、彼らは

コントローラを示しているが、

public JsonResult getEvents() { UserProfile user = getUserProfile(); List<Calendar> events = db.Calendars.Where(c => c.userID == user.userID).ToList(); IList<calendarPost> tasksList = new List<calendarPost>(); // foreach (Calendar eve in events) // { tasksList.Add(new calendarPost { id = 5, title = "test", start = ToUnixTimespan(DateTime.Now.AddHours(1)), end = ToUnixTimespan(DateTime.Now.AddHours(2)), url = "www.google.com" // }); // } }); return Json(tasksList.ToArray() , JsonRequestBehavior.AllowGet); } 

ええとbtwはどちらも同じJson出力を生成します。

[{"id":5,"title":"test","start":1336945877,"end":1336949477,"url":"www.google.com","backgroundColor":null}] 

[{"id":1,"title":"Testing the Calendar","start":1349384400,"end":1352062800,"url":"www.google.com","backgroundColor":null},{"id":3,"title":"Testing Votes","start":1325748600,"end":1325752200,"url":"www.google.com","backgroundColor":null}] 
+0

jsonresponse.ashx(ハンドラ)ファイルを追加してみて、そのファイルに次のコードを追加し、

することができます。デバッガを起動し、デバッガにレコードが含まれていることを確認します。 – Roger

+0

@RogerHarfordそれは、Json出力はそれを確認します。 –

答えて

0

あなたがオブジェクトのイベントを割り当てた後にブレークポイントを置くjsonresponse.ashx

using System; 
using System.Web; 
using System.Collections; 
using System.Collections.Generic; 
using System.Web.SessionState; 

public class JsonResponse : IHttpHandler, IRequiresSessionState 
{ 


public void ProcessRequest(HttpContext context) 
{ 

DateTime start = new DateTime(2012, 4, 1); 
DateTime end = new DateTime(2012, 4, 30);    

String result = String.Empty; 

result += "["; 

List<long> idList = new List<long>(); 

List<Calendar> events = db.Calendars.Where(c => c.userID == user.userID).ToList(); 

foreach (Calendar eve in events) 
     { 
      result += convertCalendarEventIntoString(eve); 
      idList.Add(eve.id); 
     } 

if (result.EndsWith(",")) 
    { 
     result = result.Substring(0, result.Length - 1); 
    } 

    result += "]"; 
    //store list of event ids in Session, so that it can be accessed in web methods 
    context.Session["idList"] = idList; 

    context.Response.Write(result); 

} 

private String convertCalendarEventIntoString(CalendarEvent cevent) 
{ 
    String allDay = "true"; 
    if (ConvertToTimestamp(cevent.start).ToString().Equals(ConvertToTimestamp(cevent.end).ToString())) 
    { 

     if (cevent.start.Hour == 0 && cevent.start.Minute == 0 && cevent.start.Second == 0) 
     { 
      allDay = "true"; 
     } 
     else 
     { 
      allDay = "false"; 
     } 
    } 
    else 
    { 
     if (cevent.start.Hour == 0 && cevent.start.Minute == 0 && cevent.start.Second == 0 
      && cevent.end.Hour == 0 && cevent.end.Minute == 0 && cevent.end.Second == 0) 
     { 
      allDay = "true"; 
     } 
     else 
     { 
      allDay = "false"; 
     } 
    } 
    return "{" + 
       "id: '" + cevent.id + "'," + 
       "title: '" + HttpContext.Current.Server.HtmlEncode(cevent.title) + "'," + 
       "description: '" + HttpContext.Current.Server.HtmlEncode(Convert.ToString(cevent.description)) + "'," + 
       "start: " + ConvertToTimestamp(cevent.start).ToString() + "," + 
       "end: " + ConvertToTimestamp(cevent.end).ToString() + "," + 
       "allDay:" + allDay + "," + 
       "description: '" + HttpContext.Current.Server.HtmlEncode(cevent.description) + "'," +     
       "url: '" + HttpContext.Current.Server.HtmlEncode(cevent.url) + "'" + 
       "},"; 
} 

private long ConvertToTimestamp(DateTime value) 
{ 


    long epoch = (value.ToUniversalTime().Ticks - 621355968000000000)/10000000; 
    return epoch; 

} 
} 
関連する問題