내 ViewModel
클래스에 대한 사용자 정의 EditorTemplate이 있습니다 (확인란 목록 생성).IEnumerable 용 MVC3 편집기 템플릿은 @ Html.LabelFor의 'for'특성을 생성하지 않습니다.
보기에서 내 모델은 IEnumerable<ViewModel>
이지만, 내가 생성 된 HTML에 @Html.EditorForModel()
를 호출 할 때 for
label
태그의 속성은 비어 있습니다.
하나의 확인란 만 렌더링하려는 경우 모든 것이 올바르게 작동합니다.
public class StateViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public bool Checked { get; set; }
}
EditorTemplate :
@model Mcs.Sibs.UI.Web.Models.StateViewModel
@Html.HiddenFor(x => x.Id)
<div>
@Html.CheckBoxFor(x => x.Checked)
@Html.LabelFor(x => x.Checked, Model.Name)
</div>
내보기 :
@model IEnumerable<Mcs.Sibs.UI.Web.Models.StateViewModel>
@using (Html.BeginForm()
{
@Html.EditorForModel()
}
생성 된 HTML은 (하나 개의 체크 박스) 다음과 같습니다
<input type="hidden" value="1" name="[0].Id" data-val-required="The Id field is required." data-val-number="The field Id must be a number." data-val="true">
<div>
<input type="checkbox" value="true" name="[0].Checked" data-val-required="The Checked field is required." data-val="true">
<input type="hidden" value="false" name="[0].Checked">
<label for="">Checkbox label</label>
당신은 그 '에 대한 볼 수 있습니다 '속성이 비어 있습니다. 내가 잘못했거나 MVC3 기본값 EditorTemplate
에 버그가 있습니다. IEnumerable<T>
?
음, 이상합니다. 두 번째 매개 변수없이 LabelFor를 호출 해봤습니까? –
@ 존 - 예, 아직 두 번째 매개 변수없이 시도했습니다. –
예 ... 나는 이것에 대한 답을보기 위해 기다릴 수 없습니다. IEnumerable 및 Html.EditorFor (model => Model [i])에 대한 반복을 시도 했습니까? –