ASP.NET MVC 3本地化验证消息在我的计算机上有效,但在服务器上无效



我在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设置为英语、德语或意大利语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)。之后,我们的应用程序显示了西班牙语的所有验证错误,没有任何进一步的配置。

我希望这能帮助到有同样问题的人。

相关内容

最新更新