Проблемы с отображением 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 в данный момент. Так что я бы немного подождал - будущее будет решено.

Другие вопросы по тегам