ビューからコントローラーに渡す次のモデルがあります。
public class CheckoutIndexCommand {
[Required]
public DeliveryTimeType DeliveryTime { get; set; }
}
そして、この列挙型を DeliveryTimeType として:
public enum DeliveryTimeType {
MORNING = 1,
AFTERNOON = 2
}
ビューで:
@Html.DropDownListFor(m => m.DeliveryTime, Model.DeliveryTimeOptions)
コントローラーの送信アクションでModelState.IsValid
チェックしました。
これは完璧に機能します。次のような無効な値でオプションを送信するとどうなるか知りたいと思っただけです。
<option name="NotValidEnumValue" selected>xxx</option>
true
列挙型であってもModelStateの戻り値ModelState.IsValid
は一致できませんが、これは望ましくありません。
列挙型を解析して解析できるかどうかを確認し、モデル状態エラーを手動で追加することを考えていましたが、ここに質問があります:
私にとって有効な列挙値をチェックするDataAnnotationまたは何かはありますか?
すでにこれを使用しようとしましたが、成功しませんでした:
[Required]
[EnumDataType(typeof(DeliveryTimeType))]
public DeliveryTimeType DeliveryTime { get; set; }