模型绑定中的DateTime格式

时间:2014-06-18 20:43:57

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

在我的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" />

1 个答案:

答案 0 :(得分:3)

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

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

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

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