2011-10-26 5 views
1

뷰 모드의 속성이 있습니다 :UIHint가 IList에서 작동하지 않습니까?

보기에서
[UIHint("FileUpload")] 
public IList<string> Images { get; set; } 

Create.cshtml 폴더 Shared/EditorTemplates/FileUpload.cshtml

<h3>Test</h3> 

에서

@html.ValidationSummary(true) 
@html.EditorForModel() 

그러나 필드가 표시되지 않습니다 . 간단히 말해서, 아무 일도 일어나지 않습니다!

나는 필드의 다른 유형과 동일한 테스트를하고 일했다 :

[UIHint("FileUpload")] 
public string Test { get; set; } 

것은 무엇 잘못 될 수 있을까? 이 문제를 어떻게 해결합니까?

Create.cshtml보기에 아래 코드를 수동으로 추가하면 작동합니다!

@Html.EditorFor(m => m.Images) 

나는 무엇을 해야할지 잘 모릅니다.

답변

2

예, UIHint은 목록과 작동하지 않습니다. 해당 편집기 템플릿 (~/Views/Shared/EditorTemplates/FileUpload.cshtml) 안에 루프가 필요합니다. UIHint 템플릿은이 모델의 경우 IList<string>입니다.

@model IList<string> 
@foreach (var item in Model) 
{ 
    ... 
} 
+0

하지만 왜 수동으로 @@ Html.EditorFor (m => m.Images) 코드를 삽입하면 제대로 작동합니까? 문제는'UIHint'가 아닌'@Html.EditorForModel();이라고 생각합니다. 그렇지 않으면'@Html.EditorFor (m => m.Images) '코드가 작동하지 않습니다. – ridermansb

+1

@RidermandeSousaBarbosa, @Html.EditorForModel()'을 사용하면 주어진 뷰 모델 ('~/Views/Shared/EditorTemplates/MyViewModel.cshtml')에 대해 사용자 정의 편집기 템플릿을 정의 할 수 있습니다. 여기서'@ Html.EditorFor (m => m.Images)'. 실제로 EditorForModel이 하위 편집기 템플릿으로 반복되지 않을 수도 있습니다. –

관련 문제