如何从前端(Angular)向C#.net日期时间(webAPI)发送日期
本文关键字:日期 时间 webAPI net 前端 Angular | 更新日期: 2023-09-27 18:25:33
在我的前端,我有一个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.如果您不知道格式,则进行分析:
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);