ASP.NET MVC 日期字符串斜杠在 Safari 输入字段中被转换为破折号

ASP.NET MVC date string slash being converted to dash in Safari input fields

我正在将 DateTime 输出到文本输入字段 MM/dd/yyyy 的字符串格式。这适用于所有浏览器,除了最新版本的 Safari(在 Yosemite,如果重要的话)。请参阅以下示例:

此代码:

      <div><input type="text" value='@Model.Arrival.Value.ToString("MM/dd/yyyy")' /></div>
  <div><input type="text" value="@Html.Raw(Model.ArrivalDateString)" /></div>
  <div><input type="text" value="8/23/2015" /></div>
  <div><input type="text" value="08/23/2015" /></div>

产生这个:

我为此设置的测试页上绝对没有其他内容 运行。它只是一个简单的 HTML 页面,其中包含来自视图模型的服务器端输出。 MVC 5 和 .net 框架 4.5.1

查看页面源码,在Safari中是这样的:

<input type="text" value="08-20-2015" />

在其他浏览器上是这样的:

<input type="text" value="08/20/2015" />

我能够通过为字符串格式指定区域性来解决问题。即:

DateTime arrival = DateTime.Now;
CultureInfo invariant = CultureInfo.InvariantCulture;
string dateString = arrival.ToString("MM/dd/yyyy", invariant);

en-US 也适用。仍然不确定为什么会这样。看起来 ASP.NET 正在根据用户代理做一些不同的事情。请求 headers 在其他方面看起来是一样的。

如果我能够让 browserstack 在本地工作,我早就想通了。