2012-12-11 2 views
2

컬렉션이 포함 된 모델이 있습니다. 개별 요소를 매개 변수로 사용하여 작업에 게시하는 양식에 각 개체 EditorFor을 래핑하려고합니다. 예 :모델 컬렉션의 개별 요소를 작업에 게시하려면 어떻게해야합니까?

class ModelWithCollection 
{ 
    List<ElementModel> Elements { get; set; } 
} 

class ElementModel 
{ 
    int Field { get; set; } 
} 

public ActionResult ElementAction(ElementModel viewModel) 
{ 

} 

그러나 내 viewModel에는 채워진 속성이 없습니다. 편집기에서 ID를 Elements[0].Field과 같은 것으로 렌더링하므로이를 이해할 수 있습니다. 오히려 그 행동이 단지 Field을 원할 것입니다.

어떻게이 문제를 해결할 수 있습니까?


jquery를 사용하여 수동으로 파일을 업로드 할 수 있다고 생각하지 않습니다.

답변

2

There is an overload of EditorFor은 세 개의 인수 (expression, templateNamehtmlFieldName)를 취합니다. 표현식 을 templateName에 제공하면 (도우미에게 편집기 템플릿을 일반적인 방법으로 해석하도록 알려 줌) htmlFieldName의 빈 문자열을 제공하면 Elements[0]. 접두어가없는 필드가 렌더링되어야합니다.

<%=Html.EditorFor(m => m.Elements[i], null, string.Empty)%> 
1

부분보기를 사용하여이 문제를 해결할 수 있습니다. EditorFor을 부분보기 (ElementModel 모델로)로 이동하면 [0] 대괄호가 생성되지 않습니다.

+0

대체 답변을 주셔서 감사합니다.이 경우에만 추가 파일 (부분보기)이 필요하지 않으므로 HackedByChinese와 함께했습니다. –

+0

물론, 나는 또한 @HackedByChinese에 +1을 추가했다. 나는 그의 솔루션을 내 ;-) 이상으로 좋아한다. – mipe34

관련 문제