MVC 枚举单选按钮必填字段



我正在使用枚举类显示单选按钮。

public enum RegisteredBy
    {
        [Display(Name = "Customer", Order = 0)]
        H,
        [Display(Name = "Dealer/Contractor", Order = 1)]
        S,
    }

当我在我的视图和提交时呈现它时,我没有选择任何单选按钮。即使它采用"H"作为默认值。这样它就不会显示任何验证消息。

  @using ConsumerProductRegistration.Models;
    @using ProductRegistration.Models.Enums;
    @model ProductRegistration.Models.Registration
        @Html.RadioButtonFor(m => m.RegisteredBy, RegisteredBy.H, new { id = "RegisteredByCustomer" })
        @Html.Label("Customer")<br />
        @Html.RadioButtonFor(m => m.RegisteredBy, RegisteredBy.S, new { id = "RegisteredByDealer" })
        @Html.Label("Dealer/Contractor")
 @Html.ValidationMessageFor(m => m.RegisteredBy)

在模型中:

public class Registration
    {
        [Required(ErrorMessage = "Select at least one option")]
        [Display(Name = "Registered by*")]
        public RegisteredBy RegisteredBy { get; set; }
}

在视图:

public ActionResult CustomerInfo(Registration registration)
        {
            return View(registration);
        }

请建议我。如果用户未选择,我们应该显示错误消息。

枚举

元素的默认基础类型是 int 。默认情况下,第一个枚举器的值为 0,并且每个后续枚举器的值增加 1。

当您不选择任何内容并发布表单时,将自动设置默认值 0(默认值为整数)。

在这种情况下,您可以使用属性使属性可为 null [Required]该属性在未选择任何内容时将 null 作为值发送。由于它用[Required]属性装饰,它将为您提供所需的字段验证错误。

[Required]
public RegisteredBy? RegisteredBy { get; set; }

最新更新