-1

xml 형식의 설문지를 Questionnaire라는 문자열 유형 데이터 필드에 저장합니다. 데이터베이스 필드는 contactID 및 Questionannire입니다. MVC 응용 프로그램에서이 작업을 수행하고 있습니다. 누군가 ViewModel의 모습을 말해 줄 수 있습니까?MVC ViewModel - 뷰 모델 정의가 필요합니다

XML은 싶습니다

<xml> 
    <Question>What is your country of origin?/<Question> 
    <Answer>United Kingdom </Answer> 
    <Question>What is your place of birth?</Question> 
    <Answer>United States </Answer> 
</xml> 
+0

보기 모델에는보기에서 표시/편집하려는 속성이 포함되어 있으므로 표시/편집하려는 것은 무엇이든 해당 특성을 작성하십시오. 그 질문에 대한 xml 파일과 사용자 응답을 데이터베이스에 직접 저장하는 것의 반대가 명확하지 않기 때문에 대답을하기가 어렵습니다. –

+0

안녕하세요 이유는 내가 예제로 저장하는 이유는 여러 테이블을 사용하여 해당 정보를 저장하지 않도록하는 것입니다. 그러면 Question 테이블, Answers 테이블 및 QuestionAnswer 테이블을 만들어야합니다. 난 그저 하나의 열에 그것을 저장하고 싶었던 것처럼 간단하게 유지하고 싶었습니다 – user3751248

+0

위에서 언급 한 xml 구조와 마찬가지로 내 뷰 모델이 어떻게 보이는지 보여 줄 수 있습니까? – user3751248

답변

0

과 같이 할 수 귀하의 ViewModel :

public class VM { public IEnumerable<QA> MyQuestionsAnswers {get;set; } } 
//then you need a QA class 
public class QA{ 
    public List<string> Questions {get;set;} 
    public List<string> Answers {get;set;} 
} 

다음 당신이 XML을 읽고 QA의 목록에 넣어 필요 ...

XDocument document = XDocument.Load(@"XMLFile1.xml"); 

var TheQuestions = (from br in document.Descendants("Questions") 
        select br).ToList(); 
var TheAnswers = (from or in document.Descendants("Answers") 
        select or).ToList(); 
var myQA = new QA{Questions=TheQuestions, Answers=TheAnswers} 
+0

이것은 가난합니다 질문과 답변을 저장하는 방법 ... 개별 목록으로 분리하여 개체의 자연적인 연결을 잃어 버릴 수 있습니다. 이제 당신은 그것들을 동기화 상태로 유지해야합니다. –

+0

동의하지만 작전 전체 문제를 해결하는 것 같지 않았습니다. Op를 보여줌으로써 그가 마무리 할 수있는 문제를 분해하는 방법을 생각하고 있습니다. 그를 위해 끝낼 수 있을까요? –

+0

문제의 근본 원인은 XML 레이아웃입니다. 질문과 대답은 모두 분야에 포함되어야합니다 ... –