【发布时间】:2015-09-29 21:35:57
【问题描述】:
假设我有一个具有属性的模型。
[Required]
public string XXX { get; set; }
如您所见,我有验证属性 [必需]。让我们尝试在表单中将其留空,然后出现错误消息。该应用程序在 VS 开发服务器上运行。
Pole XXX jest wymagane.
到目前为止一切正常。出现本地化消息。但发布后本地化丢失。
字段 XXX 为必填项。
首先认为我们应该检查已发布应用程序的文化(我将其记录到文件并显示在视图中):
文化:pl-PL CultureUI: pl-PL
看起来不错,那么问题出在哪里?
已发布的应用程序安装在 Windows Server 区域设置为 en-GB 的不同机器上,但只要我的应用程序文化不同,这并不重要,对吧?
【问题讨论】:
-
你为什么不通过提供像
[Required( ErrorMessage = "Wymagana wartość")]这样的显式消息来覆盖内置错误消息 -
@WiktorZychla 因为我有数百个模型,我想最终弄清楚为什么它不能正常工作。
-
@GSerg 您提供的解决方案正是我不想做的,也没有回答我的问题 - “为什么本地化在发布后停止工作”。
-
本地化在发布后停止,因为您发布的应用程序不包含文字本地化字符串。相反,它包含 .NET 框架在运行时从其资源中获取所述字符串的指令。您的计算机有波兰语资源,因此它会为您显示波兰语。服务器没有波兰语资源,因此它回退到英语资源。要修复它,您可以通过安装波兰语语言包为服务器提供波兰语资源。这怎么不能回答你的问题?
标签: c# asp.net-mvc asp.net-mvc-4