마법사를 만들고 있는데 내가 작성한 목록을 전파해야합니다. 목록은 내 연락처 모델입니다. 폼에 넣어서 마지막 단계에서 컨트롤러에 다시 게시 할 때 연락처 목록을 마법사 모델의 일부로 가질 수 있습니다. 이제는 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"] 만 걱정하지 않습니다. 어떤 제안이있어 주셔서 감사합니다.
당신은 당신의 행동이 어떤 모습이고 당신의 모델이보기에 게시해야 할 것입니다. 'model'은 당신의 컨트롤러 코드에서'WizardViewModel' 타입입니까? 컨트롤러 코드가 어떤 단계에 있는지는 아직 명확하지 않습니다. 양식보기 작성을 위해 게시 한 컨트롤러 코드입니까? – merekel