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

时间:2015-07-21 20:47:03

标签: asp.net-mvc safari

我正在将DateTime输出为字符串格式MM / dd / yyyy到文本输入字段。这适用于所有浏览器,除了最新版本的Safari(在优胜美地,如果这很重要)。见下面的例子:

此代码:

      <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>

产生这个:

screenshot

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

查看页面源,在Safari中看起来像这样:

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

在其他浏览器上,就是这样:

<input type="text" value="08/20/2015" />
  • 更新:看起来.NET正在为Safari浏览器选择不同的文化/格式。可能的解决方法是指定格式提供程序。

1 个答案:

答案 0 :(得分:0)

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

SELECT Id, LastModifiedDate, CaseNumber, Subject, InternalSubject__c, Description,
  IsClosed, POC__r.FirstName, POC__r.LastName, Owner.FirstName, Owner.LastName,
  InformationFrom__c, Contact.FirstName, Contact.LastName, Account.Name,
  ProductName__c, ProductVersion__c, ProductProblemType__c, SubjectMatterExpert__r.Name,
  CaseProductRegion__r.Name, CaseProductModel__r.Name, CaseProductSecondaryModel__r.Name,
  CreatedBy.FirstName, CreatedBy.LastName,
  LastModifiedBy.FirstName, LastModifiedBy.LastName,
  (SELECT CommentBody From CaseComments),
  (SELECT Subject, Description FROM Tasks),
  (SELECT Subject, Headers, Textbody FROM EmailMessages)
FROM Case limit 5

en-US也适用。仍然不确定为什么会这样。看起来ASP.NET正在根据用户代理执行不同的操作。否则请求标头看起来一样。

如果我能够让browserstack在本地工作,我会更早地想出来。