Модель:
using System.ComponentModel.DataAnnotations;
using MySite.Validators;
namespace MySite.Models
{
public class AddItem
{
[Required(ErrorMessage = "Name is required")]
public string Name { get; set; }
[TagValidation(ErrorMessage = "At least one tag is required")]
public virtual List<int> Tags { get; set; }
}
}
Вид:
@using (Html.BeginForm()) {
...
<div class="editor-label">
@Html.LabelFor(model => model.Tags, "Tags")
</div>
<div class="editor-field">
@Html.ListBox("Tags")
@Html.ValidationMessageFor(model => model.Tags)
</div>
...
}
Validator:
using System.ComponentModel.DataAnnotations;
namespace MySite.Validators
{
public class TagValidationAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
return false;
}
}
}
Я хочу, чтобы мой валидатор возвращал false для начала, просто чтобы убедиться, что он работает. Однако, если я не выбираю какие-либо теги из списка и не отправляю форму, он пытается обработать ее без каких-либо ошибок, указывающих на то, что мне нужно сначала выбрать тег.
Что я здесь не так делаю?