gpt4 book ai didi

c# - Nullable 在 WCF 服务中始终为 null?

转载 作者:行者123 更新时间:2023-11-30 18:30:32 25 4
gpt4 key购买 nike

我有一个 WCF 契约(Contract),其中有 3 个 DateTime? 参数。在我的页面上,我使用 jquery 传递一个包含这 3 个日期的 javascript 对象。当 javascript 不为空时,服务仍将其接收为空。有时它们确实需要为 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') for beforenew Date('10/15/2013') 之后

Fiddler 报告 POST 正文如下所示:

FirstName=&LastName=&DateOfBirth=&From=Mon+Oct+14+00%3A00%3A00+MDT+2013&To=Tue+Oct+15+00%3A00%3A00+MDT+2013

FirstNameLastName 等其他字段正常显示。现在,OrderID 将始终为 null,但日期都为 null,没有警告或错误。我能做什么?

最佳答案

看起来像是格式问题。您可以在将它发送到服务器之前使用 Date.prototype.toISOString() 函数吗?

这是一个 documentation如果你想让它在 >IE9 浏览器上工作,你可以 extend it按照示例。

您还可以配置message logging查看有关请求的更多详细信息

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

-D

关于c# - Nullable<DateTime> 在 WCF 服务中始终为 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21417264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com