Для кого-либо другого, имеющего те же проблемы, что и я, у меня есть ряд указателей, которые могут вам помочь. Это только то, что я нашел, помогло мне и просто руководство для любого другого, кто потратил впустую недели ценного времени, задаваясь вопросом, почему, казалось бы, прекрасный код не работает. Я хорошо знаю, что мои умения слабы (старик), но если это помогает сэкономить хотя бы одному человеку, то мое время не было полностью потрачено впустую.
Это для веб-форм C# .NET 3.5, а не MVC.
Во-первых, убедитесь, что для свойств объекта ContentType и ContentEncoding объекта Response установлено значение JSON. В прошлом я использовал «текст/обычный», но это не похоже на работу для меня по этому поводу:
context.Response.ContentType = "application/json";
context.Response.ContentEncoding = Encoding.UTF8;
Если с помощью LINQ, создавая новый объект в порядке и формат календаря ожидает поможет свести к минимуму проблемы с нарушениями данных. Если вам нужны назначения только для чтения, вы можете просто добавить опцию в список. Элемент «заголовок» ниже работает как ISNULL или будет COALESCE в SQL, чтобы предотвратить обнуляет возвращается:
var apps = (
from a in db.Appointments
select new {
id = a.id,
start = a.startTime.Value,
end = a.endTime.Value,
title = a.subjectLine == null ? "" : a.subjectLine
}).ToList();
Хотя Есть много способов сериализации набора данных в формате JSON, я нашел самый чистый метод заключается в использовании библиотеки NewtonSoft Json.NET.Это так же просто, как добавить одну строку, чтобы создать объект JSON, с необходимой ISO8601 форматирования даты:
return JsonConvert.SerializeObject(apps, new IsoDateTimeConverter());
Насколько сторона JQuery идет, я буду показывать только «данные:» функцию, так как это та часть, которая была мне смущенный на самый длинный:
data: function(start, end, callback) {
$.ajax({
url: "/content/handlers/GetScheduledAppointments.ashx",
type: "GET",
success: function(json) {
callback(json);
},
async: false
});
}
удобный наконечник относительно даты, которые я пришел, прежде чем я начал использовать библиотеку Json.NET - если вы просто не можете получить .NET для возврата даты в формате что jWC нравится, затем используйте библиотеку [Date.js для выполнения дополнительного форматирования в самом jQuery. В течение нескольких дней я не мог получить исходный код для вывода времени начала и окончания в формате, который будет отображаться в календаре, независимо от того, что я пробовал. Во всех примерах функционирования (с локальными данными генерируются в JQuery) даты были созданы, используя следующий формат:
new Date(year, month, day, hour, minute)
Таким образом, используя эту основу, также можно явно привести даты, возвращаемые со спины конец, как библиотека Date.js займет почти все приближается дата и работы его магии:
data: function(start, end, callback) {
$.ajax({
url: "/content/handlers/GetScheduledAppointments.ashx",
type: "GET",
success: function(json) {
if ($.isArray(json)) {
$.each(json, function(key, value) {
value.start = new Date(value.start);
value.end = new Date(value.end);
});
}
callback(json);
},
async: false
});
}
Я знаю, что ничего из этого не очень Leet (или даже оптимизированная), но, надеюсь, это может быть полезным для некоторых люди, которые испытывают настоящие трудности с jWC и .NET.
tx много .. Я столкнулся с проблемами интеграции jWC с asp.net MVC .. это сообщение помогло мне – Premkumar
Очень хороший человек, я боролся с ним с 2 дней, мне все еще нужна помощь, могли бы вы поделитесь с вами ответом «json»? Я просто хочу проверить формат DateTime, отправленный с сервера, я использую Web API. –
Я мог бы, если бы у меня все еще было это! К сожалению, я больше не работаю в должности, где был этот код, поэтому я очень сожалею об этом. Надеюсь, вам удастся его отсортировать! – mafbailey