簡體   English   中英

可空 <DateTime> 在WCF服務中始終為null?

[英]Nullable<DateTime> always null in WCF service?

我有一個有3個DateTime?的WCF合同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')beforenew Date('10/15/2013')after

Fiddler報告POST主體看起來像這樣:

姓=&名字=&DATEOFBIRTH =&從周一= +月+ 14 + 00%3A00%3A00 + MDT + 2013&要=星期二+月+ 15 + 00%3A00%3A00 + MDT + 2013

其他字段,如FirstNameLastName正在通過。 目前,OrderID將始終為null,但日期全部為null,沒有警告或錯誤。 我能做什么?

看起來像格式化問題..你可以在將它發送到服務器之前使用Date.prototype.toISOString()函數嗎?

這是一個文檔 ,如果你想使它工作在> IE9瀏覽器,你可以按照例子擴展它

您還可以配置消息日志記錄以查看有關請求的更多詳細信息

<messageLogging 
       logEntireMessage="true" 
       logMalformedMessages="true" 
       logMessagesAtServiceLevel="true" 
       logMessagesAtTransportLevel="true" /> 

-D

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM