jquery $.ajax()
以ISO格式从浏览器发送日期为json:yy-mm-dd
(如果这样做更好,我可以使用yyyy-mm-dd
在POST
正文中。
ASP.NET MVC4 Web API控制器包含DateTime
属性。
如何在任何服务器线程文化设置中获取日期值?
我试过
public class TestController : ApiController {
public class PlaaniSisend
{
public DateTime date { get; set; }
}
[HttpPost]
public HttpResponseMessage Post([FromBody] PlaaniSisend vali)
{
Console.Write(vali.date );
}
}
如果服务器线程文化日期格式与ISO不同,则vali.date值错误。 如何解决这个问题,以便在任何服务器文化设置中使用ISO日期格式进行解析?
答案 0 :(得分:0)
这对我有用:我在web.config中定义了全球化设置:
var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.SerializerSettings.Culture = System.Globalization.CultureInfo.CurrentCulture;
然后,在Global.asax.cs> Application_Start,我将JsonFormatter设置为使用当前文化:
abstract
答案 1 :(得分:-1)
您可以将数据接受为字符串,并使用特定格式和文化进行解析:
public class TestController : ApiController {
public class PlaaniSisend
{
public string date { get; set; }
}
[HttpPost]
public HttpResponseMessage Post([FromBody] PlaaniSisend vali)
{
DateTime date = DateTime.ParseExact(vali.date, "yyyy-MM-dd", CultureInfo.InvariantCulture);
Console.Write(date);
}
}