如何在ASP.Net Core MVC的IValidatableObject.Validate方法中正确本地化验证

时间:2017-01-25 08:16:57

标签: c# asp.net asp.net-core asp.net-core-mvc

我有一个实现IValidatableObject的模型,我需要本地化ValidationResults,我该如何才能正确实现呢?

目前我想出了一个IValidatableObject.Validate方法,如下所示:

public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
    var stringLocalizer = validationContext.GetService(typeof(IStringLocalizer<MyModel>)) as IStringLocalizer<MyModel>;

    //Validation logic implementation...

    yield return new ValidationResult(stringLocalizer["This thing is the error message"]);
}

我在这里做的是使用ValidationContext.GetService方法查找IStringLocalizer实例。

这种方法有效但我的主要问题是我不完全确定这是正确的,特别是因为我需要依赖服务定位器来获取IStringLocalizer

0 个答案:

没有答案