3

具有我从视图传递到控制器的以下模型:

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

0 回答 0