【问题标题】:ValidationMessage for MVC3 collectionMVC3 集合的 ValidationMessage
【发布时间】:2012-10-03 11:04:16
【问题描述】:

我们的 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。

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-3


    【解决方案1】:

    您可以在for 循环中迭代模型并收到预期的结果。

    @for(int i = 0; i < Model.ColorCodes.Count; i++)
    {
       @Html.EditorFor(model => model.ColorCodes[i])
       @Html.ValidationMessageFor(model => model.ColorCodes[i])
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多