Asp.net mvc 3 ASP.NET MVC 3列表框验证

Asp.net mvc 3 ASP.NET MVC 3列表框验证,asp.net-mvc-3,validation,listbox,model-binding,Asp.net Mvc 3,Validation,Listbox,Model Binding,正如标题中所述,我目前在ASP.NET MVC 3列表框验证方面遇到了一个奇怪的问题。基本上,我的viewmodel中有一个列表,我将其绑定到启用了多个选择的列表框 该列表具有一个属性[必需]。当我提交选中单个值的表单时,它通过了验证,没有任何问题。但是,如果有多个,验证将失败 有什么想法吗?奇怪,我无法重现你的问题 型号: public class MyViewModel { [Required(ErrorMessage = "Please select at least one it

正如标题中所述,我目前在ASP.NET MVC 3列表框验证方面遇到了一个奇怪的问题。基本上,我的viewmodel中有一个列表,我将其绑定到启用了多个选择的列表框

该列表具有一个属性[必需]。当我提交选中单个值的表单时,它通过了验证,没有任何问题。但是,如果有多个,验证将失败


有什么想法吗?

奇怪,我无法重现你的问题

型号:

public class MyViewModel
{
    [Required(ErrorMessage = "Please select at least one item")]
    public string[] SelectedItems { get; set; }

    public IEnumerable<SelectListItem> Items
    {
        get
        {
            return Enumerable.Range(1, 5).Select(x => new SelectListItem
            {
                Value = x.ToString(),
                Text = "item " + x
            });
        }
    }
}
视图:

@model MyViewModel
@使用(Html.BeginForm())
{
@Html.ListBoxFor(x=>x.SelectedItems,Model.Items)
@Html.ValidationMessageFor(x=>x.SelectedItems)
好啊
}

如果未在列表中选择任何项目,则验证错误消息将按预期显示。如果您选择了一个或多个项目,验证将通过,并且不会显示错误消息。

奇怪,我无法重现您的问题

型号:

public class MyViewModel
{
    [Required(ErrorMessage = "Please select at least one item")]
    public string[] SelectedItems { get; set; }

    public IEnumerable<SelectListItem> Items
    {
        get
        {
            return Enumerable.Range(1, 5).Select(x => new SelectListItem
            {
                Value = x.ToString(),
                Text = "item " + x
            });
        }
    }
}
视图:

@model MyViewModel
@使用(Html.BeginForm())
{
@Html.ListBoxFor(x=>x.SelectedItems,Model.Items)
@Html.ValidationMessageFor(x=>x.SelectedItems)
好啊
}

如果未在列表中选择任何项目,则验证错误消息将按预期显示。如果选择一个或多个项目,验证将通过,并且不会显示错误消息。

Oops,我想我发现了问题。抱歉发帖了。实际上,我有另一个验证属性[Integer],它携带与所需相同的ErrorMessage。抱歉发帖了。实际上,我还有另一个验证属性[Integer],它根据需要携带相同的ErrorMessage。
@model MyViewModel

@using (Html.BeginForm())
{
    @Html.ListBoxFor(x => x.SelectedItems, Model.Items)
    @Html.ValidationMessageFor(x => x.SelectedItems)
    <button type="submit">OK</button>
}