クラス用のカスタムEditorTemplateがViewModel
あります(チェックボックスリストが生成されます)。
ビューでは、私のモデルはですが、生成されたHTMLIEnumerable<ViewModel>
を呼び出すと、タグの属性は空になります。@Html.EditorForModel()
for
label
チェックボックスを1つだけレンダリングしたい場合は、すべて正常に機能します。
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は次のようになります(1つのチェックボックスに対して):
<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>
か?