如何将日期从前端(Angular)发送到C#.net日期时间(webAPI)?
在我的前端,我有一个HTML输入框,用户可以在其中输入日期。这会将数据添加到AngularJS模式中,然后当用户单击save时,我会尝试将其作为JSON对象发送到服务器 在服务器上,我使用了它,我认为它修改了预期日期的方式。我只知道它允许AngularJS很好地读取来自后端的日期如何将日期从前端(Angular)发送到C#.net日期时间(webAPI)?,c#,asp.net,.net,json,angularjs,C#,Asp.net,.net,Json,Angularjs,在我的前端,我有一个HTML输入框,用户可以在其中输入日期。这会将数据添加到AngularJS模式中,然后当用户单击save时,我会尝试将其作为JSON对象发送到服务器 在服务器上,我使用了它,我认为它修改了预期日期的方式。我只知道它允许AngularJS很好地读取来自后端的日期 config.SuppressDefaultHostAuthentication(); config.Filters.Add(new HostAuthenticationFilter(OAut
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等格式在输入框中输入日期,以某种方式进行修改
,然后将其传递给服务器,并让服务器将其作为日期时间读取吗
我的问题是,我不确定如何修改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.ParseExact:
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);
您应该添加一个带有DateTime参数的方法的webapi控制器。然后获取或发布到该方法。很简单。还是你有其他问题?你没有说你是否尝试过,它是否有效。。。将日期作为文本输入并自己解析总是一个选项……我有一个webapi控制器,它接受JSON对象,我正在向它发布。我已经试了很久了。问题在于,我的JSON字符串中的日期形式似乎与web api所需的不匹配。异常?您在这里有点含糊不清--“似乎不符合web api的需要”--怎么会这样?发生了什么事?