2014-12-06 6 views
-1

C#으로 작성된 MVC 프로젝트를 사용합니다. 내가보기에 내 컨트롤러에서 '레시피'개체를 전달보기에서 컨트롤러로 목록을 포함하는 객체를 전달하는 방법

int id; 
List<Ingredient> ingredientList; 
String description; 
//and so on 

이 성분 목록 내 레시피 아니라 다른 성분을 포함

내가 포함 된 개체 '레시피'를했습니다. 내 관점에서, 성분 목록을 저장하기 위해,이 수행

@Html.HiddenFor(model=>model.Ingredients) 

을하지만 내가보기에 내 양식을 제출, 그래서 때 내 컨트롤러에 것입니다. 디버거를 사용하여 현재 제조법이 무엇인지 확인하면 재료 목록이 비어 있음을 알 수 있습니다. 나는 이유를 모른다.

해결책이 있으십니까?

+1

복잡한 개체에서'@ Html.HiddenFor()'를 사용할 수 없습니다. 'for' 루프를 사용하고 'Ingredients'의 각 속성에 대한 입력을 렌더링해야합니다 (또는 '성분 목록'입니까?)하지만 숨겨진 입력 만 필요하기 때문에 모든 데이터를 클라이언트에 보내고 게시 할 시점이 무엇입니까? 다시 서버로 돌아갑니다. POST 메서드에서 필요하면 저장소에서 다시 가져옵니다. –

답변

-1

여기에서의 문제는보기가 기본 유형으로 HiddenFor을 수행하는 방법 만 알고 있다는 점입니다.

당신은 같은과 함께이 문제를 해결 수 : 당신은 더 나은 당신이 클래스의 읽기/쓰기 속성으로 편집하려는 속성 만있는 뷰 모델을하는 것이 좋습니다 수 있습니다 말했다으로

@foreach (var item in Model.Ingredients) 
{ 
    @Html.HiddenFor(modelItem=>item.IngredientProperty1); 
    @Html.HiddenFor(modelItem=>item.IngredientProperty2); 
    //and so on for all the properties of your Ingredient class 
} 

. 그런 다음 필요없는 http POST에서 모든 추가 데이터를 전달하지 않을 것입니다.

+0

답변 해 주셔서 감사합니다. – user2274060

관련 문제