代码之家  ›  专栏  ›  技术社区  ›  DM.

数据注释自动处理int会造成障碍

  •  2
  • DM.  · 技术社区  · 14 年前

    摘要:DataAnnotation自动处理“int”?让我重新考虑使用它们。

    也许我遗漏了一些东西和一个简单的修复方法,但是我不能让数据注释配合。我有一个公共属性,具有自己的自定义验证属性:

    [MustBeNumeric(ErrorMessage = "Must be a number")]
    public int? Weight { get; set; }
    

    自定义验证属性的要点是快速检查输入是否为数字并显示适当的错误消息。问题是,当dataAnnotations尝试将字符串绑定到int时?自动不验证并显示“值'asdf'对权重无效。”

    在我的生活中,我不能让数据注释停止处理它,这样我就可以在自定义属性中处理它。

    这似乎是一个流行的场景(验证输入的数字),我猜有一个简单的解决方案,但我在任何地方都找不到。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Darin Dimitrov    14 年前

    这里有一个解决方法(我不会称之为解决方案)。添加一个 Messages.resx 文件内部 App_GlobalResources Web应用程序的文件夹。在内部添加以下资源:

    Key: PropertyValueInvalid
    Value: {0} Must be a number
    

    Application_Start 方法 Global.asax 添加以下内容:

    DefaultModelBinder.ResourceClassKey = "Messages";