我们有一个将在英国和德国使用的 ASP.Net MVC3 应用程序。
一些编辑屏幕涉及编辑浮点值。这些是使用
@Html.EditorFor(m => m.Multiplier, new { size = 5, id = "multiplier" })
...或者
@Html.TextBoxFor(m => m.Multiplier, new { size = 5, id = "multiplier" })
我们的基本问题是,当使用 DE-de 文化(使用 , 表示小数点)运行时,我们会在验证摘要中收到消息,例如
• 值“4,3”对乘数无效。
在做一些研究后,我发现在 MVC 3 中对客户端验证的国际化支持并不是那么好。我知道有潜在的解决方案涉及添加更多最近的 Javascript 全球化工作。但为了尽量减少影响,我宁愿简单地禁用客户端验证并接受需要在服务器端完成此验证。
所以......我试图以多种方式禁用客户端验证:
a) 在编辑屏幕的代码中:
@using Foo.Models.Analyses
@model Foo.Models.Analyses.Bar
@{
Html.EnableClientValidation(false);
Html.EnableUnobtrusiveJavaScript(false);
using (Html.BeginForm("SomeAction", "SomeController", FormMethod.Post, new { autocomplete = "off" }))
{
b) 同上,但使用语法 HtmlHelper.ClientValidationEnabled = false; HtmlHelper.UnobtrusiveJavaScriptEnabled = false
c) 与 a) 和 b) 相同,但使用 web.config。
这些似乎都没有压制这些消息。所以我的问题是:
1) 框架的哪个部分仍在执行此验证。(它不会发生在服务器端验证覆盖中。)
2)我如何抑制这个。