Servicestack请求datetime反序列化在我的本地机器上使用丹麦语/区域正常工作 - 但在生产服务器上它不起作用,因为它具有英语文化。
如何让它忽略当前的文化?
这适用于本地: ourdomain.dk/api/json/reply/LoadGuardBookView?date=24/07/2014
这适用于制作: ourdomain.dk/api/json/reply/LoadGuardBookView?date=07/24/2014
不同的文化日期格式。如何使用相同的代码使其工作?
这个电话来自javascript,所以我手边没有文化。
修改1:
var date = $.datepicker.formatDate("d/m/yy", $("#calendar").datepicker("getDate"));
$.get("/api/json/reply/LoadGuardBookView", {
Date: date
}, function (data) {
...
}).fail(function (e) {
...
console.log("Error reloading GuardBook");
});
服务器:
public class GuardBookService : Service, IGet<LoadGuardBookView>
{
public object Get(LoadGuardBookView request)
{
...
}
public class LoadGuardBookView
{
public DateTime Date { get; set; }
}
}
例外:
{ “ResponseStatus”:{ “错误码”: “SerializationException”, “消息”:“可能 不使用反序列化'* .LoadGuardBookView'请求 KeyValueDataContractDeserializer:'date = 24-07-2014'。\ n错误: “System.Runtime.Serialization.SerializationException: KeyValueDataContractDeserializer:转换为类型时出错:String is 未被识别为有效的DateTime。 ---&GT; System.FormatException: 字符串未被识别为有效的DateTime。\ r \ n at System.DateTime.Parse(String s,IFormatProvider提供程序, DateTimeStyles样式)\ r \ n at ServiceStack.Text.Common.DateTimeSerializer.ParseShortestXsdDateTime(字符串 dateTimeStr)\ r \ n at ServiceStack.Text.Common.DeserializeBuiltin
1.<GetParseFn>b__b(String value)\r\n at ServiceStack.ServiceModel.Serialization.StringMapTypeDeserializer.PopulateFromMap(Object instance, IDictionary
2 keyValuePairs,List1 ignoredWarningsOnPropertyNames)\r\n --- End of inner exception stack trace ---\r\n at ServiceStack.ServiceModel.Serialization.StringMapTypeDeserializer.PopulateFromMap(Object instance, IDictionary
2 keyValuePairs,List1 ignoredWarningsOnPropertyNames)\r\n at ServiceStack.ServiceModel.Serialization.KeyValueDataContractDeserializer.Parse(IDictionary
2 keyValuePairs,Type returnType)\ r \ n at ServiceStack.WebHost.Endpoints.Support.EndpointHandlerBase.DeserializeHttpRequest(类型 operationType,IHttpRequest httpReq,String contentType)'“}}
答案 0 :(得分:0)
我找到了适用于本地和生产的解决方法:
ourdomain.dk/api/json/reply/LoadGuardBookView?date=2014-07-24
编辑:正如评论所述 - 这是做到这一点的方法。 (YYYY-MM-DD)