Проверка ListBox в ASP.NET MVC 3 - PullRequest
1 голос
/ 22 ноября 2011

В настоящее время у меня возникает странная проблема с проверкой ASP.NET MVC 3 ListBox, как указано в заголовке. В основном у меня есть List в моей viewmodel, который я привязываю к ListBox с включенным множественным выбором.

Списку присваивается атрибут [Обязательно]. Когда я отправляю форму с одним выбранным значением, она проходит проверку без ошибок. Однако при наличии более одного проверка не удалась.

Есть мысли?

1 Ответ

5 голосов
/ 22 ноября 2011

Странно, я не могу воспроизвести вашу проблему.

Модель:

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
            });
        }
    }
}

Контроллер:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View(new MyViewModel());
    }

    [HttpPost]
    public ActionResult Index(MyViewModel model)
    {
        return View(model);
    }
}

Просмотр:

@model MyViewModel

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

Если вы не выберете какой-либо элемент в списке, сообщение об ошибке проверки будет отображаться, как и ожидалось.Если вы выбираете один или несколько элементов, проверка проходит успешно, и сообщение об ошибке не отображается.

...