モデル:
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>
...
}
バリデーター:
using System.ComponentModel.DataAnnotations;
namespace MySite.Validators
{
public class TagValidationAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
return false;
}
}
}
バリデーターが機能していることを確認するために、最初は false を返すようにします。ただし、リストからタグを選択せずにフォームを送信すると、最初にタグを選択する必要があることを示すエラーが表示されずにフォームが処理されます。
ここで何が間違っていますか?