繁体   English   中英

如何从前端(Angular)向C#.net datetime(webAPI)发送日期?

[英]How can I send a date from my front end (Angular) to C# .net datetime (webAPI)?

在前端,我有一个HTML输入框,用户可以在其中输入日期。 这会将数据添加到我的AngularJS模态中,然后当用户单击“保存”时,我尝试将其作为JSON对象发送到服务器。

在服务器上,我使用了此功能,我认为它可以更改预期的日期方式。 我所知道的是,它使AngularJS可以很好地读取来自后端的日期。

     config.SuppressDefaultHostAuthentication();
        config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
        config.Formatters.Remove(config.Formatters.XmlFormatter);
        var json = config.Formatters.JsonFormatter;
        json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
        json.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
        json.SerializerSettings.Converters.Add(new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-ddTHH:mmZ" });

有谁知道如何将日期以YYYY-MM-DD之类的格式输入到输入框中,然后modify in some way然后将其传递给服务器,并让服务器将其作为日期时间读取?

我的问题是我不确定如何修改YYYY-MM-DD日期。 当我尝试输入“ 2011-12-31”之类的日期时,服务器不会接受该日期,应该输入该日期的列显示该日期的空值。

您是否曾经尝试创建IsoDateTimeConverter的子类? 尝试这个:

public class MyJsonDateTimeConverter : IsoDateTimeConverter
{
    public MyJsonDateTimeConverter()
    {
        base.DateTimeFormat = "yyyy-MM-dd";
    }
}

然后使用它代替最后一行:

json.SerializerSettings.Converters.Add(new MyJsonDateTimeConverter());

希望这可以帮助 :)

有谁知道如何将日期以YYYY-MM-DD之类的格式输入到输入框中,然后以某种方式进行修改然后将其传递给服务器,并让服务器将其作为日期时间读取?

为什么不使用angular ui团队的日期选择器组件

我的问题是我不确定如何修改YYYY-MM-DD日期。 当我尝试输入“ 2011-12-31”之类的日期时,服务器不会接受该日期,应该输入该日期的列显示该日期的空值。

YYYY-MM-DD是服务器端可接受的日期格式吗? 然后,您可以将客户端上的现有日期格式转换为该日期格式,然后再发布到服务器上。 检查您的网络标签以查看发布的值。

希望这可以帮助。

如果知道格式,请尝试使用DateTime.ParseExact;如果不知道,请尝试仅使用DateTime.Parse:

DateTime dt = DateTime.ParseExact("2011/12/31", "yyyy/d/MM", new CultureInfo("en-US"));


DateTime.Parse("2011/12/31", new CultureInfo("en-US"));

但是,如果来自UI的日期具有以下格式:YYYY-MM-DD,请尝试以下操作:

DateTime dt;
DateTime.TryParseExact(dateTime, 
                       "yyyy-MM-dd hh:mm tt", 
                       CultureInfo.InvariantCulture, 
                       DateTimeStyles.None, 
                       out dt);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM