【问题标题】:Localization messages in Fluent validation (MVC3)Fluent 验证 (MVC3) 中的本地化消息
【发布时间】:2026-01-22 17:20:04
【问题描述】:

在我的 MVC 3 应用程序中,我使用的是 fluent validation

public class AccountModelValidator : AbstractValidator<AccountModel>
    {
        public AccountModelValidator()
        {
           m.NewPassword).WithMessage(Translator.Data["ConfirmPasswordValidation"]);
        }
    }

对于本地化,我使用的是从 here 找到的示例,但我发现所有语言都有相同的验证消息。

原因是验证器不知道我更改了语言。

我怎样才能正确地做到这一点?

也许我应该使用 WithLocalizedMessage 但它只适用于 .resx

【问题讨论】:

  • 我假设您实现了一种机制来设置翻译者的语言环境。您是否在运行时检查了翻译器的语言环境?对吗?
  • 是的,这是正确的,maube 我需要编写自己的方法WithMessage?我该怎么做?

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


【解决方案1】:

当 WithLocalizedMessage 为所有语言返回相同的值时,很可能尚未设置文化(这发生在 POST 上,其中操作处理程序尚未运行)

解决方案是将文化设置在不同的位置: Best place to set CurrentCulture for multilingual ASP.NET MVC web applications

【讨论】: