私はViewModel
クラス用のカスタムEditorTemplateを持っています(チェックボックスリストを生成します)。IEnumerable用のMVC3エディタテンプレートは、@ Html.LabelForの 'for'属性を生成しません。
ビューでは、私のモデルはIEnumerable<ViewModel>
ですが、私は、生成されたHTMLで@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>
あなたは「のことを見ることができます'属性は空です。 何か間違っているのですか、これはMVC3のデフォルトのEditorTemplate
で何らかのバグですIEnumerable<T>
?
Hmmこれは奇妙です。私はあなたも2番目のパラメータなしでLabelForを呼び出すことを試みたと仮定しますか? –
@ジョン - はい、私は第2パラメータなしで試しましたが、まだ空です。 –
ええと...私はこれに対する答えが何であるかを待つことができません。あなたはあなたのIEnumerableとHtml.EditorFor(model => Model [i])のループをやってみましたか? –