我需要发送01/09/2017(dd / MM / yyyy)这个日期从视图到方法。 URL显示我发送的内容,但我在方法参数中获得了该日期,例如“2017年1月9日”。我该怎么办?请建议。
services.Configure<RequestLocalizationOptions>(
opts =>
{
var supportedCultures = new[]
{
new CultureInfo("de-DE"),
};
opts.DefaultRequestCulture = new RequestCulture("de-DE");
opts.SupportedCultures = supportedCultures;
opts.SupportedUICultures = supportedCultures;
});
我在ConfigureService(startup.cs)中添加了这个。仍然没有工作..尝试“de-US”,“de-UK”格式。
当我从视图发送日期到动作(通常通过jquery POST)时,我使用javascript Date.getTime()将其转换为ulong纪元时间(自1970年1月1日起)。我的javascript时间都是UTC,这允许我在我的服务器上使用以下扩展方法:
public static ulong ToJavascriptTicks(this DateTime t)
{
return (ulong)(t.ToUniversalTime() - new DateTime(1970, 1, 1)).TotalMilliseconds;
}
public static DateTime FromJavascriptTicks(this DateTime t, ulong ticks)
{
return new DateTime(0, DateTimeKind.Utc).AddMilliseconds(ticks).Add(new DateTime(1970, 1, 1) - DateTime.MinValue).ToLocalTime();
}
临时解决这个问题。我将日期时间作为字符串值(客户端到控制器)发布,然后将其转换为日期时间。它解决了我的问题。但是,将会有一个更好的解决方案。