Проблемы с отображением Upshot asp.net mvc4
Я работаю над одностраничным приложением в бета-версии ASP.NET MVC 4, которое завершается неудачно (я полагаю) в тот момент, когда upshots пытается отобразить JSON, возвращенный моим контроллером.
Мой проект работает с эссе, которое требует личной информации, некоторых открытых вопросов + ответы и несколько вопросов Лайкерта + ответы (согласен, не согласен и т. Д.)
Вот как выглядит моя модель:
// Essay contains personal information, questions and related answers
public class EssayResult {
public EssayResult() {
if( FinishedAt == null )
FinishedAt = DateTime.Now;
PersonInfo = new PersonInfo();
LikertAnswers = new List<LikertAnswer>();
OpenAnswers = new List<OpenAnswer>();
}
public int EssayResultId {get; set;}
public DateTime? FinishedAt {get; set; }
public virtual int PersonInfoId {get; set; }
public virtual PersonInfo PersonInfo {get; set; }
public virtual ICollection<LikertAnswer> LikertAnswers {get; set; }
public virtual ICollection<OpenAnswer> OpenAnswers {get; set; }
}
// Contains some information about the person who's doing the essay
public class PersonInfo {
public int PersonInfoId {get; set;}
[Required]
public int Age {get; set; }
[Required]
public Education Education {
get { return ( Education ) EducationValue; }
set { EducationValue = ( int ) value; }
}
[Required]
public Gender Gender {
get { return ( Gender ) GenderValue; }
set { GenderValue = ( int ) value; }
}
[Required]
public bool RobotExperience {get; set; }
// Workaround to get enums mapped
public int EducationValue {get; set; }
public int GenderValue {get; set; }
}
public enum Education {
Middelbaar,
Mbo,
Hbo,
Wo
}
public enum Gender {
Man,
Vrouw
}
public class LikertQuestion {
public int LikertQuestionId {get; set; }
[Required]
public string Name {get; set; }
[Required]
public string Question {get; set; }
}
public class LikertAnswer {
// Primary key and Question-relation
public int LikertAnswerId {get; set; }
public virtual int LikertQuestionId {get; set; }
public virtual LikertQuestion LikertQuestion {get; set; }
public virtual int EssayResultId {get; set; }
public virtual EssayResult EssayResult {get; set; }
// Properties
public LikertScale Answer {get; set;}
}
public class OpenQuestion {
public int OpenQuestionId {get; set; }
public string Question {get; set; }
}
Кажется, мой контроллер возвращает правильный JSON:
{
"EssayResultId": 0,
"FinishedAt": "/Date(1338204633030+0200)/",
"LikertQuestionId": 0,
"LikertAnswers": [
{
"Answer": 0,
"EssayResult": null,
"EssayResultId": 0,
"LikertAnswerId": 0,
"LikertQuestion": {
"LikertQuestionId": 1,
"Name": "PU01",
"Question": "Ik denk dat robots nuttig zijn"
}
},
...
],
"OpenAnswers": [
{
"Answer": null,
"EssayResult": null,
"EssayResultId": 0,
"OpenAnswerId": 0,
"OpenQuestion": {
"OpenQuestionId": 1,
"Question": "Wat komt er als eerste in u op bij het horen van het woord 'robot'?"
},
"OpenQuestionId": 0
},
... ],
"PersonInfo": {
"Age": 12,
"Education": 0,
"EducationValue": 0,
"Gender": 0,
"GenderValue": 0,
"PersonInfoId": 0,
"RobotExperience": false
},
"PersonInfoId": 0
}
Некоторые ссылки не установлены, так как эти объекты были созданы контроллером, а не извлекаются из БД.
Knockout не может отобразить это в действительной модели представления, он не выдает никаких ошибок, но когда я проверяю переменную viewmodel с помощью firebug, он показывает множество функций upshot и т. Д. Вместо модели представления и множества дополнительных функций upshot.
Это мой первый проект Knockout, Upshot и SPA, так что я в некотором роде заблудился, так как апшот не выдает никаких ошибок, и модель верна на уровне сервера / базы данных...
Если мне нужно будет предоставить более подробную информацию, дайте мне знать.:) Я следовал учебному пособию по ToDo-элементам и примеру отслеживания доставки Стива Сандерсона, так что я думаю, это должно быть что-то с моей моделью / картированием..?
шлифовальная машинка
Обновление: я удалил свойство FinishedAt, так как оно, по-видимому, в неправильном формате, но даже это не помогло... до сих пор не знаю, почему моя модель представления не будет отображаться, json выглядит нормально..
1 ответ
Upshot и серверная часть не являются частью ASP.NET MVC 4 RTM в данный момент. Так что я бы немного подождал - будущее будет решено.