我在ASP.NET MVC 3表单中使用本地化验证消息。它正确地生成类似的HTML
<input class="inputlong" data-val="true"
data-val-length="Das Feld &quot;Adresse&quot; muss eine Zeichenfolge mit
einer maximalen L&#228;nge von 100 sein."
data-val-length-max="100"
data-val-required="Das Feld &quot;Adresse&quot; ist erforderlich."
id="Address" name="Address" type="text" value=""
/>
当我将CurrentThread设置为英语、德语或意大利语CultureInfo时,这在我的机器上运行良好。
但它在另外两台开发人员机器和一台Windows Server 2008 R2测试机器上不起作用(相同的项目,相同的设置:我甚至安装了ASP.NET MVC 3 Tools Update Language Pack),但我仍然只收到英文验证消息:
<input class="inputnormal input-validation-error" data-val="true"
data-val-length="The field Adresse must be a string with a maximum length of 100."
data-val-length-max="100" data-val-required="The Adresse field is required."
id="Address" name="Adresse" type="text" value=""
/>
在我不知道的其他计算机上是否有设置或缺少某些程序集?
您可能需要安装.net framewok语言包。例如,在我安装德语包之前,我的机器上的验证消息不会以德语显示。
Required
属性不是asp.net-mvc的一部分,而是更通用的DataAnnotations,因此语言包应该会有所帮助。
这是一个"几年后",但我想为此付出2美分。我最近也遇到了同样的问题,但使用当前的技术堆栈:VS 2015、MVC 5、.NET 4.6;我们在墨西哥开发,有一个语言混淆和一些验证错误消息(大多数是西班牙语,少数是英语)。
我找到了这个SO答案,但这对我的情况没有帮助,因为当我尝试安装.NET语言包时,安装程序向我抛出一条"您安装了更新的版本"消息,安装停止了!
我解决这个问题的方法是为我们的项目安装带有Nuget的MVC语言包:Microsoft.AspNet.Mvc.es
(显然,所有微软支持的语言都有本地化的包:只需用您自己的语言替换.es
,例如德语的Microsoft.AspNet.Mvc.de
)。之后,我们的应用程序显示了西班牙语的所有验证错误,没有任何进一步的配置。
我希望这能帮助到有同样问题的人。