2017-01-31 151 views
0

我在名为'shop'的数据库中创建了名为'Gift_Info'的表。在表中,有3列(ID,UserEmail,BDayDate)。我在/查看/ Home创建的Events.cshtml:从数据库提取数据

var origin = new DateTime(1970, 1, 1, 0, 0, 0, 0); 
    var db = Database.Open ("shop"); 
    var sa = WebSecurity.CurrentUserName; 
    var sql = "SELECT BDayDate, ID FROM Gift_Info WHERE UserEmail = @0"; 
    var result = db.Query(sql, sa); 
    var data = result.Select(x => new 
    { 
     id = x.Giftee, 
     title = x.Giftee, 
     allDay = true 
    }).ToArray(); 

    Json.Write(data, Response.Output); 
    Response.ContentType = "application/json"; 
+0

events:'/Events.cshtml'? =>我认为这应该是你的方法名称返回数据结果不是你的.cshtml页面名称在事件 –

+0

它应该是位置权? – rodgersmith

+0

如果你的方法返回JSON格式化的事件属性数据比它工作正常。 –

回答

0

这将工作。而不是手动创建对象,您将转到数据库。这将用于调用控制器操作或方法。如果你想叫一个ASMX就可以了,但一定要打开脚本属性:

控制器方法,或者你的方法:

public class HomeController : Controller 
{ 
    public class eventsClass { 
     public IList<YouWillGetThisFromDB> events = new List<YouWillGetThisFromDB>(); 
    } 

    public class YouWillGetThisFromDB 
    { 
     public string id { get; set; } 
     public string title {get; set;} 
     public string start {get; set;} 
     public bool allDay {get; set;} 
    } 

    public JsonResult GetCalendarEvents() 
    { 
     YouWillGetThisFromDB you = new YouWillGetThisFromDB 
     { 
      id = "theId", 
      title = "theTitle", 
      start = "1/5/2017", 
      allDay = true 
     }; 
     eventsClass ec = new eventsClass(); 
     ec.events.Add(you); 

     return Json(ec.events, JsonRequestBehavior.AllowGet); 
    } 

    public ActionResult Index15() 
    { 
     return View(); 
    } 

的观点:

<!DOCTYPE html> 
<html> 
<head title="apdh"> 
    <script src="~/Scripts/jquery-1.12.4.min.js"></script> 

    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script> 
    <script src="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.1.0/fullcalendar.min.js"></script> 

    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.1.0/fullcalendar.min.css"> 
    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.1.0/fullcalendar.print.css "> 
    <script> 
     $(document).ready(function() { 
      $('#calendar').fullCalendar({ 
       editable: false 
       , events: '/Home/GetCalendarEvents' 
      }); 
     }); </script> 
</head> 
<body> 
    <div id="calendar"></div> 
</body> 
</html> 
+0

我以前试过。但我不知道如何从控制器中的数据库中检索数据 – rodgersmith

0

Here是一个.NET小提琴fullcalendar工作。它显示了如何调用提供开始日期和结束日期的Controller,该日期可用于限制从数据库返回的数据。然后它返回日历上显示的事件。