Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# IValidatableObject.Validate()中的本地化_C#_.net_Validation_Localization_Data Annotations - Fatal编程技术网

C# IValidatableObject.Validate()中的本地化

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

我使用数据注释来验证我的WebAPI2模型。对于基本的基于属性的验证(
必需的
范围
,等等),通过注入自定义的
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查找实际值。。。