0
Public Class Duration 
{
  [Required]
  Public DurationUnit Unit
  [Required]
  Public int Length
}

Public Class Employee
{
  [RequiredAttribute]
  public virtual Duration NotificationLeadTime { get; set; }
}

字段UnitLength未提供时以红色突出显示,但未显示错误消息。

我也尝试给予[Required(ErrorMessage="sadfdsf")],但这也行不通。我也尝试过继承类,IValidatableObject但这也没有用。

如何显示错误信息?

4

1 回答 1

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

于 2012-10-17T14:18:32.543 回答