2013-04-16 2 views
0

마법사를 만들고 있는데 내가 작성한 목록을 전파해야합니다. 목록은 내 연락처 모델입니다. 폼에 넣어서 마지막 단계에서 컨트롤러에 다시 게시 할 때 연락처 목록을 마법사 모델의 일부로 가질 수 있습니다. 이제는 null이 반환됩니다. 다른 간단한 폼 객체의 경우 HiddenFor를 사용하여 모델의 데이터를 유지합니다. 숨겨진 for가 텍스트 상자 일 뿐이므로 복잡한 객체가 있기 때문에이 방법은 효과가 없습니다.숨겨진 모델 목록을 면도기 양식에 추가하십시오.

DropDownListFor를 만들고 숨겨진 div에 배치하는 것을 고려했습니다. 이것은 패치 워크 일 뿐이며 실제로 DropDownListFor가 다른 객체 유형을 받아들이도록 약간의 작업을 수행합니다 (전혀 작동하지 않는 경우).

나는 세션 [ "Contacts"]에 목록을 저장하는 것을 고려해 봤지만 적절한 MVC 방법은 아닙니다. 누구든지 더 좋은 제안이 있습니까?

감사합니다, 응답에서 TJ

--UPDATE--

내가 문제를 겪고 위치를 명확히하기 위해 자세한 내용을 추가하고 merekel합니다. 이 목록은 사용자가 수정할 수 없으며 양식에 표시되지 않습니다. 내 마법사 단계 중 하나에서 목록을 만들고 이와 같은 모델에 저장합니다.

보기 모델

public class WizardViewModel 
{ 
    //... 
    public List<Contact> ContactList { get; set; } 
    //... 
} 

컨트롤러 코드

//Step 4 in the wizard 
model.ContactList = CALL FUNCTION THAT CREATES LIST BASED ON FORM SELECTIONS 

//other calculations needed for step 5 

//Save Contacts for later 
Session["Contacts"] = model.ContactList; 


//Step 5 in the wizard 

//Readd the contacts to the model 
model.ContactList = (List<Contact>)Session["Contacts"]; 

//Save the model to pass to the report page 
//My report viewer is on an ASPX page so I am passing all the data here with a session 
Session["ReportModel"] = model; 

예상대로 작동 저장 세션. MVC를 사용하여 페이지간에 데이터를 저장하기 위해 세션을 사용해야하는 것처럼 보이지 않습니다. MVC에서 ASPX로 갈 때 필요하므로 Session [ "ReportModel"] 세션 [ "Contacts"] 만 걱정하지 않습니다. 어떤 제안이있어 주셔서 감사합니다.

+0

당신은 당신의 행동이 어떤 모습이고 당신의 모델이보기에 게시해야 할 것입니다. 'model'은 당신의 컨트롤러 코드에서'WizardViewModel' 타입입니까? 컨트롤러 코드가 어떤 단계에 있는지는 아직 명확하지 않습니다. 양식보기 작성을 위해 게시 한 컨트롤러 코드입니까? – merekel

답변

1

저는이 같은 게시물이 도움이 될 것이라고 믿습니다. 1, 2. 목록을 다시 게시하는 방법에는 이와 비슷한 게시물이 많이 있습니다.

이 연락처는 양식에서 채워 지거나 글로벌 연락처입니까?

+0

의견을 보내 주셔서 감사합니다. 올바르게 설명하지 않은 내용을 명확히하기 위해 게시물을 수정했습니다. – JabberwockyDecompiler

관련 문제