MVC 忽略 web.config 中的文化设置

Posted

技术标签:

【中文标题】MVC 忽略 web.config 中的文化设置【英文标题】:MVC ignores culture settings in web.config 【发布时间】:2018-11-11 16:44:08 【问题描述】:

我正在用 C# 构建一个 MVC 网站以在丹麦使用,因此我在我的 web.config 文件中的 system.web.globalization 节点中设置了以下内容: 文化="da-DK" uiCulture="da-DK"

当我尝试输入 11 月 21 日的日期时。 2018 年 21-11-2018 在“html.EditorFor(model => model.Date ...”控件中,model.Date 是 DateTime,我收到一条错误消息:“字段日期必须是日期。”

如果我输入 2018 年 11 月 21 日,它会被接受,就好像文化是“en-US”一样,但由于该网站打算在丹麦使用,因此日期必须反映这一点。

我在互联网上发现很多帖子都有同样的问题,但没有一个答案可以解决我的问题 - 90% 的人说:“在 web.config 中设置文化”,但我已经做到了,但没有工作。

为了使它起作用,我缺少什么?

【问题讨论】:

您遇到的是客户端错误(因为jquery.validate.js 会根据MM/dd/yyyy 格式验证日期),而不是服务器端错误。您需要重新配置$.validator - 请参阅Date of Birth validation keeps showing 【参考方案1】:

可能的原因之一如下:您向 Web 服务器发送 GET(而不是 POST)请求。

您的自定义文化将仅用于处理 POST 请求。对于 GET 请求,始终使用不变的文化。

但我建议您在此处发布最小的工作示例。

【讨论】:

以上是关于MVC 忽略 web.config 中的文化设置的主要内容,如果未能解决你的问题,请参考以下文章

数据注释 + MVC3 + 文化问题

ASP.NET MVC 中的文件大小上传限制:web.config(s) 中的 maxRequestLength 设置超过 1 个

将 httpLogging 设置添加到 MVC web.config 时出现 HTTP 错误 500

在 web.config 中设置的当前文化

设置会话文化

从 Razor View-MVC3 ASP.NET 中的 Web.config 访问键值