2012-10-25 58 views
0

是否有任何方法来验证使用ModelState和模型,以确定错误的类型?自定义ValidationMessageFor和错误类型

例如:

[必需]

我想使一个自定义ValidationMessageFor,以及内的错误它是否为[必需]或其它类型的错误。

我正在使用DataAnnotations和CodeFirst。

已经是从开始implemetantion代码:

public static MvcHtmlString MyValidationMessageFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression) 
{ 
    var Validacao = "";  
    if (helper.ViewData.ModelState[((MemberExpression)expression.Body).Member.Name] != null) 
    { 
     foreach (var erros in helper.ViewData.ModelState[((MemberExpression)expression.Body).Member.Name].Errors) 
     { 
      Validacao = Validacao + " *"; 
     } 
    }    
    return MvcHtmlString.Create(Validacao); 
} 

TKS

回答

1

任何验证属性有ErrorMessage属性,你可以用它来直接在属性中指定的错误消息。例如:

[Required(ErrorMessage = "required error")] 
[MaxLength(10, ErrorMessage = "max length error")] 
+0

有没有这个属性?想到了这个解决方案,但我认为exisita是特定的东西。 TKS –

+0

您可以尝试创建一个类似于你已经开始用了什么东西,或尝试写一些自定义的元数据提供的属性和未来使用它,而渲染。像这样的东西:http://www.dotnetcurry.com/ShowArticle.aspx?ID=687。不过,我已经提供了初步的解决方案似乎最容易对我来说通常的项目(如果你有一些特殊要求,则可能不是) –