我在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设置为英语,德语或意大利文化信息时,这在我的机器上工作正常。
但在其他两台开发者机器和一台Windows Server 2008 R2测试机器上不起作用(同一项目,相同的设置:我甚至安装了ASP.NET MVC 3工具更新语言包),但我仍然只收到英文验证消息:
<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=""
/>
我不知道的其他计算机上是否有设置或缺少一些程序集?
答案 0 :(得分:8)
您可能必须安装.net framewok语言包。例如,在我的机器上,在我安装German language pack之前,验证消息不会以德语显示。
Required
属性不是asp.net-mvc的一部分,而是更一般的DataAnnotations,因此语言包应该有所帮助。
答案 1 :(得分:0)
这是“几年后”,但我想给我2美分。我最近遇到了同样的问题,但目前的技术堆栈:VS 2015,MVC 5,.NET 4.6;我们正在墨西哥开发,并且有一个语言混合,其中包含一些验证错误消息(大多数是西班牙语,还有一些是英语)。
我找到了这个SO答案,但它对我的情况没有帮助,因为当我尝试安装.NET语言包时,安装程序给我一个“你安装了更新版本”消息,安装停止了!
我修复此问题的方法是为我们的项目安装带有Nuget的MVC语言包:Microsoft.AspNet.Mvc.es
(显然,所有Microsoft支持的语言都有本地化的包:只需用您自己的语言替换.es
,例如德语为Microsoft.AspNet.Mvc.de
。之后,我们的应用程序显示了西班牙语中的所有验证错误,无需进一步配置。
我希望这可以帮助有同样问题的人。