Asp.net mvc 3 所需属性未显示

Asp.net mvc 3 所需属性未显示,asp.net-mvc-3,Asp.net Mvc 3,未提供时,单位和长度字段将以红色突出显示,但不会显示错误消息 我还尝试给出[必需(ErrorMessage=“sadfdsf”)],但这也不起作用。 我还尝试使用IValidatableObject继承该类,但也没有成功 如何显示错误消息?您应该使用属性,而不是字段: Public Class Duration { [Required] Public DurationUnit Unit [Required] Public int Length } Public Class E

未提供时,
单位
长度
字段将以红色突出显示,但不会显示错误消息

我还尝试给出
[必需(ErrorMessage=“sadfdsf”)]
,但这也不起作用。 我还尝试使用
IValidatableObject
继承该类,但也没有成功


如何显示错误消息?

您应该使用属性,而不是字段:

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

Public Class Employee
{
  [RequiredAttribute]
  public virtual Duration NotificationLeadTime { get; set; }
}
要显示相应的错误消息,请使用
Html.ValidationMessageFor
helper

例如:

public class Duration 
{
    [Required]
    public DurationUnit Unit { get; set; }

    [Required]
    public int Length { get; set; }
}

顺便说一句,用
[Required]
属性修饰不可为空的类型(如
int
)实际上没有意义,因为这些类型总是有一个默认值。您应该将其改为可为空的整数。如果
DurationUnit
是枚举,则相同的注释表示
DurationUnit
属性

您应该使用属性,而不是字段:

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

Public Class Employee
{
  [RequiredAttribute]
  public virtual Duration NotificationLeadTime { get; set; }
}
要显示相应的错误消息,请使用
Html.ValidationMessageFor
helper

例如:

public class Duration 
{
    [Required]
    public DurationUnit Unit { get; set; }

    [Required]
    public int Length { get; set; }
}
顺便说一句,用
[Required]
属性修饰不可为空的类型(如
int
)实际上没有意义,因为这些类型总是有一个默认值。您应该将其改为可为空的整数。如果
DurationUnit
是枚举,则相同的注释表示
DurationUnit
属性