fluentvalidation更改int / long的默认错误消息

时间:2012-03-06 10:42:19

标签: c# asp.net-mvc validation fluentvalidation

有没有办法在FluentValidation中更改输入的默认错误消息?

我们可以为更复杂的类型设置验证,但简单的'你输入的数据不是一种我们似乎无法获得的int'风格的东西。

这些内置错误是:'值x对y无效或沿着这些行的某些东西 - 有没有办法覆盖这些?

2 个答案:

答案 0 :(得分:2)

没有简单/干净的方法来实现这一目标。第一种可能是覆盖应用程序启动中的DefaultModelBinder.ResourceClassKey属性并将其指向自定义资源文件:

protected void Application_Start()
{
    RegisterRoutes(RouteTable.Routes);
    DefaultModelBinder.ResourceClassKey = "Messages";
}

然后在PropertyValueInvalid内定义键App_GlobalResources/Messages.resx

另一种可能性是根据Jeremy Skinner的建议在视图模型上使用backing field

这样做的原因是,在对字段进行任何验证之前,默认模型绑定器会生成此错误消息。在验证字段之前,必须首先为其分配值。并且由于您在模型绑定期间尝试将不表示有效整数的字符串转换为整数,因此默认模型绑定器会分配默认消息。

答案 1 :(得分:0)

您也可以覆盖它。

按照以下链接 http://fluentvalidation.codeplex.com/wikipage?title=Customising