私たちの MVC3 モデルには、このような文字列のコレクションが含まれています
[CannotBeEmpty(ErrorMessageResourceName = "ColorCodes", ErrorMessageResourceType = typeof(Resources.Strings))]
[Display(ResourceType = typeof(Resources.Strings), Name = "ColorCodes")]
public List<string> ColorCodes { get; set; }
を使用して、このモデルをビューに表示します
<div class="editor-field colors">
@Html.EditorFor(model => model.ColorCodes)
@Html.ValidationMessageFor(model => model.ColorCodes)
</div>
私の問題は、myValidationMessageFor が 1 行しかレンダリングしないのに対し、以下の例では、EditorFor が 3 つの入力フィールドをレンダリングすることです。
<input class="text-box single-line" id="ColorCodes_0_" name="ColorCodes[0]" type="text" value="#d6c0d6">
<input class="text-box single-line" id="ColorCodes_1_" name="ColorCodes[1]" type="text" value="">
<input class="text-box single-line" id="ColorCodes_2_" name="ColorCodes[2]" type="text" value="#fcfcfc">
<span class="field-validation-valid" data-valmsg-for="ColorCodes" data-valmsg-replace="true"></span>
ご覧のとおり、 data-valmsg-for には「ColorCodes」が含まれていますが、これは間違っています。ColorCodes_0_、ColorCodes_1_、および ColorCodes_2_ が含まれている必要があります。モデルにコレクションが含まれている場合、ValidationMessageFor をどのように使用すればよいですか。