C# IValidatableObject.Validate()中的本地化
我使用数据注释来验证我的WebAPI2模型。对于基本的基于属性的验证(C# IValidatableObject.Validate()中的本地化,c#,.net,validation,localization,data-annotations,C#,.net,Validation,Localization,Data Annotations,我使用数据注释来验证我的WebAPI2模型。对于基本的基于属性的验证(必需的,范围,等等),通过注入自定义的modelmetadatadataprovider来提供本地化消息非常容易。但是,对于更复杂的规则,我实现了IValidatableObject,它返回一系列ValidationResult: public class ValidationResult { public ValidationResult(string errorMessage); public Valida
必需的
,范围
,等等),通过注入自定义的modelmetadatadataprovider
来提供本地化消息非常容易。但是,对于更复杂的规则,我实现了IValidatableObject
,它返回一系列ValidationResult
:
public class ValidationResult
{
public ValidationResult(string errorMessage);
public ValidationResult(string errorMessage, IEnumerable<string> memberNames);
}
公共类验证结果
{
公共验证结果(字符串错误消息);
公共验证结果(字符串errorMessage、IEnumerable MemberName);
}
似乎无法在此处指定
ErrorMessageResourceName
。我不想让我的模型依赖于本地化提供商。如何解决此问题?如果在区域性可用于系统之前调用IValidatableObject.Validate方法,则可能会发生此问题。如果从控制器操作手动调用验证方法,则错误消息将正确本地化
你在哪里设置文化?您需要在控制器>执行核心中设置它。请查看post或post可能会有所帮助。我看不出有问题……为什么不在构造函数中传递本地化字符串。或者,如果只传递密钥,请使用当前ResourceManager查找实际值。。。