2012-05-28 3 views
2

Я работаю над одностраничным приложением в бета-версии ASP.NET MVC 4, который не срабатывает (я думаю), в настоящий момент всплывающие окна пытаются сопоставить JSON, возвращенный моим контроллером.Проблемы с картированием upshot asp.net mvc4

Мой проект работает с эссе, который требует некоторой личной информации, некоторые открытые вопросы + ответы и еще несколько Лайкерта вопросы + ответы (согласен, не согласен и т.д.)

Вот как моя модель выглядит:

// 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 
} 

Некоторые ссылки не установлены, так как эти объекты были созданы с помощью контроллера, а не о f вытащили из БД.

Нокаут не может отобразить это в допустимую модель просмотра, он не вызывает никаких ошибок, но когда я проверяю переменную viewmodel с помощью firebug, он показывает множество функций upshot и т. Д., А не viewmodel и handfull of дополнительные функции восстановления.

Это мой первый Knockout, Upshot и SPA проект так что я вроде потерял с развязок doens't бросать какие-либо ошибки и модель верна на стороне сервера/дб уровня ...

Если мне нужно поставьте более подробную информацию, дайте мне знать. :) Я следил за учебником ToDo-items и примером отследителя доставки Стива Сандерсона, поэтому я думаю, что это должно быть что-то с моей моделью/картографированием.?

Sander

Update: Я удалил свойство FinishedAt, так как это, по-видимому, в неправильном формате, но даже это не помогло .. до сих пор не знаю, почему мой ViewModel не будет оказывать, json кажется прекрасным.

+0

Если вы могли бы показать нам, что вы на самом деле видите в модели просмотра ko, или как вы пытаетесь связать ее с последним DS, мы могли бы помочь вам больше –

ответ

0

Результаты и серверная часть не являются частью RTM MVC 4 RTM в момент. Так что я бы подождал немного - для будущего нужно решить.

Смежные вопросы