我正在使用枚举类显示单选按钮。
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; }