【发布时间】:2020-12-15 10:47:46
【问题描述】:
我正在尝试将此完整日历代码从使用实体框架转换为使用 Sql 命令。
这是原始代码:
1.JS代码
var events = [];
var selectedEvent = null;
FetchEventAndRenderCalendar();
function FetchEventAndRenderCalendar() {
events = [];
$.ajax({
type: "GET",
url: "/home/GetEvents",
success: function (data) {
$.each(data, function (i, v) {
events.push({
eventID: v.EventID,
title: v.Subject,
description: v.Description,
start: moment(v.Start),
end: v.End != null ? moment(v.End) : null,
color: v.ThemeColor,
allDay: v.IsFullDay
});
})
2.ASP.Net 代码(来自 HomeController)
public JsonResult GetEvents()
{
using (MyDatabaseEntities dc = new MyDatabaseEntities())
{
var events = dc.Events.ToList();
return new JsonResult { Data = events, JsonRequestBehavior = JsonRequestBehavior.AllowGet};
}
}
这是MY CONVERTED代码:
1.JS代码
var events = [];
var selectedEvent = null;
FetchEventAndRenderCalendar();
function FetchEventAndRenderCalendar() {
events = [];
$.ajax({
type: "GET",
url: "/Dashboard/GetEvents",
success: function (Data) {
$.each(Data, function (i, v) {
events.push({
eventID: v.EventID,
title: v.Subject,
description: v.Description,
start: moment(v.Start, ["YYYY-MM-DD HH:MM:SS"]),
end: v.End != null ? moment(v.End, ["YYYY-MM-DD HH:MM:SS"]) : null,
color: v.ThemeColor,
allDay: v.IsFullDay
});
});
GenerateCalender(events);
},
error: function (error) {
console.log("It Failed");
}
})
}
2.ASP.Net 代码(来自 DashboardController)
public JsonResult GetEvents()
{
DataTable dtblSchedules = new DataTable("Schedule");
using (SqlConnection sqlCon = new SqlConnection(connectionString))
{
sqlCon.Open();
SqlDataAdapter sqlDa = new SqlDataAdapter("SELECT * FROM Schedule", sqlCon);
sqlDa.Fill(dtblSchedules);
List<Schedules> scheduleList = new List<Schedules>();
for (int i = 0; i < dtblSchedules.Rows.Count; i++)
{
Schedules schedulesModel = new Schedules();
schedulesModel.EventID = Convert.ToInt32(dtblSchedules.Rows[i]["ScheduleId"]);
schedulesModel.Subject = dtblSchedules.Rows[i]["Subject"].ToString();
schedulesModel.Description = dtblSchedules.Rows[i]["Description"].ToString();
schedulesModel.Start = dtblSchedules.Rows[i]["Start_time"].ToString();
schedulesModel.End = dtblSchedules.Rows[i]["End_time"].ToString();
schedulesModel.ThemeColor = dtblSchedules.Rows[i]["Theme"].ToString();
schedulesModel.IsFullday = dtblSchedules.Rows[i]["Full_day"].ToString();
scheduleList.Add(schedulesModel);
}
return new JsonResult { Data = scheduleList, JsonRequestBehavior = JsonRequestBehavior.AllowGet};
}
}
所以我要做的是将使用从数据库实体更改为 SQL 命令,因为我想使用我的 SQL 服务器中的数据库。我保持原始代码的工作方式,因为返回的数据在 list 但我没有收到视图的 JS CODE 中的任何数据,但收到了 jsonrequestbehavior。
最后,日历显示,但没有显示任何事件,即使我的数据库中有数据。我尝试通过填写事件 ID、标题等来使用虚拟数据,它显示在我的日历上.所以问题是如何将数据从我的数据库中获取到 JS 事件?请帮帮我!
这是我使用虚拟数据时的结果: The events are shown on the calendar
显示了 2 个事件,我认为这是因为我的数据库 rn 中有 2 个数据。
【问题讨论】:
标签: jquery sql-server asp.net-mvc entity-framework dom-events