ASP.NET MVC 3本地化验证消息在我的机器上运行,但不在服务器上运行

时间:2012-03-09 15:10:23

标签: asp.net-mvc-3 localization

我在ASP.NET MVC 3表单中使用本地化验证消息。它正确生成HTML

<input class="inputlong" data-val="true" 
   data-val-length="Das Feld &amp;quot;Adresse&amp;quot; muss eine Zeichenfolge mit
                  einer maximalen L&amp;#228;nge von 100 sein." 
   data-val-length-max="100" 
   data-val-required="Das Feld &amp;quot;Adresse&amp;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=""
 />

我不知道的其他计算机上是否有设置或缺少一些程序集?

2 个答案:

答案 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。之后,我们的应用程序显示了西班牙语中的所有验证错误,无需进一步配置。

我希望这可以帮助有同样问题的人。