【问题标题】:DateTime Format In Model Binding模型绑定中的日期时间格式
【发布时间】:2014-06-18 20:43:57
【问题描述】:

在我的 Web API 项目中,我有以下模型:

public class ModelClass
{
    [Required(ErrorMessage = "Date Cannot Be Empty", AllowEmptyStrings = false)]
    [DataType(DataType.Date, ErrorMessage="Date Not In Correct Date Format")]
    public DateTime date { get; set; }
}

正在用于以下操作:

public HttpResponseMessage Submit([FromUri] ModelClass model)
{
 //do sth
}

现在,如果我通过 localhost:3647/api/Controller/Submit?date=31/12/2015 ModelState 之类的日期,DataType 的验证将失败,即使我更改了全球化以匹配 dd/MM/yyyy 的日期格式,如下所示:

<globalization culture="ms-MY" uiCulture="ms-MY" />

【问题讨论】:

标签: c# datetime asp.net-web-api cultureinfo asp.net-web-api2


【解决方案1】:

据我所知,在 ASP.NET MVC 中,查询字符串总是使用 InvariantCulture 进行解析。 仅使用 Thread Culture 解析 POST 正文。我认为这是为了允许创建对所有用户都有效的 url。

也看看这个答案:https://stackoverflow.com/a/9977290/209727

或者这篇博文:http://weblogs.asp.net/melvynharbour/mvc-modelbinder-and-localization

如果你真的需要使用这种格式,也许你可以只使用一个字符串并在你的控制器中解析它?

【讨论】:

    猜你喜欢
    • 2014-04-20
    • 2014-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 2018-01-07
    • 1970-01-01
    相关资源
    最近更新 更多