У меня есть собственный EditorTemplate для моего ViewModel
класса (он генерирует список флажков).
На мой взгляд, моя модель IEnumerable<ViewModel>
, но когда я вызываю @Html.EditorForModel()
в сгенерированном HTML, 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>
My View:
@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>
Вы видите, что атрибут for пуст.
Я делаю что-то не так или это какая-то ошибка в MVC3 по умолчанию EditorTemplate
для IEnumerable<T>
?