2010-08-17 140 views
0

我是MVC的新手,对验证有疑问。有没有办法动态设置错误消息?ASP.NET MVC 2 - 属性验证

例如,我如何实现以下(忽略硬编码的50,这可能来自Web.config或特定于当前记录的)。

[MetadataType(typeof(DocumentValidation))] 
public partial class Document 
{ 
    public class DocumentValidation 
    { 
     private const int MaxLength = 50; 

     [Required(ErrorMessage = "Document Title is required")] 
     [StringLength(MaxLength, ErrorMessage = "Must be under " + MaxLength.ToString() + " characters")] 
     public string Title { get; set; } 
    } 

}

感谢,

回答

0

取决于你想如何动态地改变的ErrorMessage。这可能是一个解决问题的方法:haacked.com - Localizing ASP.NET MVC Validation

这是一个很好的指导,以获得从resources.'

+0

嗯,我尝试设置StringLength的ErrorMessage是一个可变的字符串,而不是一个常量字符串。上面的例子中不与错误编译: 一个属性参数必须是常量表达式,属性参数类型的typeof运算表达式或数组创建表达式。 我只是想根据情况给出自定义错误信息。 – DaveHogan 2010-08-24 08:43:32