列表类型模型的MVC3下拉列表验证失败

时间:2014-02-02 15:37:55

标签: asp.net-mvc asp.net-mvc-3 dropdownlistfor

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)



        @for (int i = 0; i < 5; i++)
        {
            <div class="editor-label">
                @Html.LabelFor(model => model[i].PsfsName)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model[i].PsfsName)
                @Html.ValidationMessageFor(model => model[i].PsfsName)
            </div>

            <div class="editor-label">
                @Html.LabelFor(model => model[i].PsfsIAScore)
            </div>
            <div class="editor-field">
                @Html.DropDownListFor(model => model[i].PsfsIAScore, new SelectList(Common.Get0To9List()), "Select")

                @Html.ValidationMessageFor(model => model[i].PsfsIAScore)
            </div>
        }
        <p>
            <input type="submit" value="Create" />
        </p>

这里我面临着dropdownlist的客户端验证问题,因为它显示了来自服务器端验证的验证消息。如果我将dropdownlist替换为文本框,则会显示客户端验证错误消息。我无法理解如何对此进行验证。

- Common.Get0To9List()返回0到9个字符串的列表&amp;我想验证默认选择的文本是否为“Select”,其值为null。

请帮忙。

1 个答案:

答案 0 :(得分:0)

您可以将99值(或不在有效列表中的任何其他值)分配给第一个元素-select-然后您可以在该字段上指定范围属性。例如:

[Required, Range(0, 10)]
public int SingleSelect { get; set; }