Asp.net Core Datetime参数在通过ajax调用从视图传递时获取错误的日期格式

问题描述 投票:0回答:2

我需要发送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”格式。

c# ajax datetime asp.net-core
2个回答
0
投票

当我从视图发送日期到动作(通常通过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();
}

0
投票

临时解决这个问题。我将日期时间作为字符串值(客户端到控制器)发布,然后将其转换为日期时间。它解决了我的问题。但是,将会有一个更好的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.