c# - MVC 模型在德国日期更改日期和月份
问题描述
我尝试了几种方法,但我不知道为什么,但这让我感到困惑。
模型:
public class SearchViewModel
{
[DisplayName("Date from:")]
//[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{dd.MM.yyyy}")]
public DateTime? DateFrom { get; set; }
[DisplayName("Date to:")]
public DateTime? DateTo { get; set; }
}
看法:
@using (Html.BeginForm("SearchResult", "Search", FormMethod.Get, new { @id = "searchForDate" }))
{
<div id="criterias">
@Html.LabelFor(m => m.DateFrom)
@Html.EditorFor(m => m.DateFrom, new { htmlAttributes = new { @class = "searchinput datepicker" } })
@Html.LabelFor(m => m.DateTo)
@Html.EditorFor(m => m.DateTo, new { htmlAttributes = new { @class = "searchinput datepicker" } })
</div>
<button type="submit" class="btn btn-danger" style="background-color:#991821; margin-top:15px;" id="search">Search</button>
}
问题:
日期选择器工作正常。当我加载页面时,我单击 EditorFor DateFrom
框并选择一个日期,比如说 02.01.2019(2019 年 1 月 2 日)。当我单击提交时,它会跳入控制器操作。
在控制器中的动作model.DateFrom
是改变日期和月份。这意味着它突然是 01.02.2019(2 月 2 日),这是完全错误的。12
当我在上面选择一天model.DateFrom
是无效的。
我尝试了以下事情:
- 插入
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{dd.MM.yyyy}")]
模型 - 添加
<system.web> <globalization uiCulture="de-DE" culture="de-DE" /></system.web>
到我的Web.config
- 添加了 InternationalizationAttribute -->
CurrentCulture
并CurrentUICulture
在控制器中 - 尝试使用多个设置修改
EditorFor
to :仅从 TextBoxFor() 中查看日期TextboxFor
我还看到了这篇文章:MVC DateTime binding with wrong date format ,但不幸的是我知道这不是很好。
我不知道为什么会发生这种情况,更重要的是发生在哪里?我将断点放入 Internationalization 类中,将 bp 直接放在SearchController
action 下。没有任何帮助。当我单击提交按钮时,日期和月份正在改变位置......
解决方案
您可以尝试检查“接受语言”HTTP 请求标头。只需弹出开发工具网络选项卡,然后单击您的请求标头进行搜索。
accept-language:en-US,en;q=0.9
这是预期的吗?
另外,请看这个问题:
具体来说,这个资源来自答案:
https://weblogs.asp.net/melvynharbour/mvc-modelbinder-and-localization
希望能帮助到你!
编辑:另外,如果你还没有,我建议对所有服务器端日期使用 UTC。客户端日期可以/应该是当地时间。
推荐阅读
- prolog - How to get full stop in this Prolog predicate?
- sql - 给定所需列的列表(存储的表变量),检查物理表中所需字段集列表中的任何空值
- merge - Time complexity of algorithm which merges a stack of linked lists
- scala - Scala Play Framework: Disable Browser Launch on localhost:9000 for Run Configuration
- r - Merging two data frames in R on date/time with no ID
- php - Page Content Not Showing in Wordpress
- c# - Why does the File and FileStream API fail to write binary data with no exception thrown on Ubuntu?
- python-3.x - How can I limit the CPU usage of moviepy?
- r - 在 R 中使用带有 git2r::clone 的 SSH 身份验证时获取“不支持的 URL 协议”
- sql - 如何保证字段值的唯一性?