Public Class Duration
{
[Required]
Public DurationUnit Unit
[Required]
Public int Length
}
Public Class Employee
{
[RequiredAttribute]
public virtual Duration NotificationLeadTime { get; set; }
}
字段 Unit
和 Length
,如果未提供,则会以红色突出显示,但错误消息未显示。
我也尝试给[Required(ErrorMessage="sadfdsf")]
,但这也无效。
我也尝试用IValidatableObject
继承该类,但这也没有用。
如何显示错误消息?
答案 0 :(得分:3)
您应该使用属性,而不是字段:
public class Duration
{
[Required]
public DurationUnit Unit { get; set; }
[Required]
public int Length { get; set; }
}
要显示相应的错误消息,请使用Html.ValidationMessageFor
帮助程序。
例如:
@Html.EditorFor(x => x.NotificationLeadTime.Unit)
@Html.ValidationMessageFor(x => x.NotificationLeadTime.Unit)
顺便说一下,使用int
属性装饰不可为空的类型(如[Required]
)并不合理,因为这些类型总是有默认值。你应该把它变成一个可以为空的整数。如果DurationUnit
是枚举,则DurationUnit
属性的相同注释代表。