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를 DB에서 끌어 낸다.
노크 아웃이 이것을 유효한 뷰 모델로 매핑하지 못하면 아무런 메시지도 표시하지 않지만 firebug로 viewmodel-variable을 검사하면 viewmodel과 handfull 대신에 upshot-functions 등이 많이 표시됩니다. 추가 upshot 기능.
내가 필요하면 ...이 그래서 내가 좀 upshots 이후 잃었어요 처음으로 넉 아웃, 결말과 SPA 프로젝트
는오류를 던져 넣은 사람은 아니다 및 모델은 서버 쪽/DB-수준에서 정확 더 자세한 정보를 알려주십시오. :) 나는 ToDo-items 튜토리얼과 Steve Sanderson의 Delivery Tracker 예제를 따라했습니다. 그래서 내 모델/매핑 ..과 뭔가 있어야합니다.
샌더
업데이트 : 그것은 잘못된 형식으로 분명하지만 이후이 FinishedAt 속성을 제거했습니다도 내 ViewModel을 렌더링하지 않습니다 .. 왜 아직도 모르는 도움이되지 않았다, json은 괜찮아 보입니다.
실제로 ko viewmodel에 표시되는 내용을 표시하거나 위 사진 DS에 바인딩하려는 경우 어떻게하면 더 많은 도움을 드릴 수 있습니까? –