【问题标题】:Localization in IValidatableObject.Validate()IValidatableObject.Validate() 中的本地化
【发布时间】:2017-06-07 15:44:33
【问题描述】:

我使用数据注释来验证我的 Web API 2 模型。对于基本的基于属性的验证(RequiredRange 等),通过注入自定义 ModelMetadataProvider 来提供本地化消息非常容易。然而,对于更复杂的规则,我实现了IValidatableObject,它返回ValidationResult的序列:

public class ValidationResult
{
    public ValidationResult(string errorMessage);
    public ValidationResult(string errorMessage, IEnumerable<string> memberNames);
}

这里好像没有办法指定ErrorMessageResourceName。而且我不想让我的模型依赖于本地化提供商。我该如何解决这个问题?

【问题讨论】:

  • 我没发现问题...你为什么不直接在构造函数中传递一个本地化字符串。或者如果你只想传递键使用当前的 ResourceManager 来查找实际值...

标签: c# .net validation localization data-annotations


【解决方案1】:

如果在系统可以使用区域性之前调用 IValidatableObject.Validate 方法,就会发生这种情况。如果从控制器操作中手动调用 Validate 方法,则错误消息已正确本地化。

您在哪里设置文化?您需要在 Controller > ExecuteCore 中进行设置。请查看this 帖子或This 帖子可能会有所帮助。

【讨论】:

    猜你喜欢
    • 2011-11-06
    • 1970-01-01
    • 2015-11-04
    • 2010-10-22
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多