我有一个WCF合约,其中包含3个DateTime?
个参数。在我的页面上,我正在使用jquery传递一个包含这3个日期的javascript对象。当javascript为非null时,服务仍将其作为null接收。它们有时需要为Nullable,所以我不能删除它。
C#:
public class Search {
public String FirstName { get; set; }
public String LastName { get; set; }
public DateTime? DateOfBirth { get; set; }
public int? OrderID { get; set; }
public DateTime? From { get; set; }
public DateTime? To { get; set; }
}
JS:
var search = {};
search.FirstName = $('#SearchFirst').val() || null;
search.LastName = $('#SearchLast').val() || null;
search.DateOfBirth = $('#SearchDOB').val() || null;
search.From = after;
search.To = before;
search.OrderID = null;
$.ajax({
url: url,
dataType: "json",
data: search,
async: true,
cache: false,
success: function (data) {
$('#SearchLoading').hide();
DisplaySearchResults(data);
},
type: "Post"
});
我正在为new Date('10/14/2013')
和before
使用new Date('10/15/2013')
等after
等测试值。
Fiddler报道POST主体看起来像这样:
姓=安培;名字=安培; DATEOFBIRTH =安培;从=周一+月+ 14 + 00%3A00%3A00 + MDT + 2013&安培;为了=星期二+月+ 15 + 00%3A00%3A00 + MDT + 2013
FirstName
和LastName
等其他字段正确显示。目前,OrderID将始终为null,但日期全部为null,没有警告或错误。我该怎么办?
答案 0 :(得分:0)
看起来像格式问题..你可以在将它发送到服务器之前使用Date.prototype.toISOString()
功能吗?
这是一个documentation,如果你想让它在> IE9浏览器上运行,你可以extend it为例。
您还可以配置message logging以查看有关请求的更多详细信息
<messageLogging
logEntireMessage="true"
logMalformedMessages="true"
logMessagesAtServiceLevel="true"
logMessagesAtTransportLevel="true" />
-D