我正在使用枚举类显示单选按钮。
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);
}
请建议我。如果用户没有选择,我们应该显示错误信息。
答案 0 :(得分:0)
枚举元素的默认基础类型是int
。默认情况下,第一个枚举数的值为0,每个连续枚举数的值增加1。
当您没有选择任何内容并发布表单时,默认值0将自动设置(默认值为整数)。
在这种情况下,您可以使用[Required]
属性使您的属性为空,当选择任何内容时,该属性将null作为值发送。并且由于它使用[Required]
属性进行修饰,因此会为您提供必要的字段验证错误。
[Required]
public RegisteredBy? RegisteredBy { get; set; }