DateプロパティがNoneのオブジェクトをAJAX対応のWCFが返す必要がある場合、このサービスへの要求は失敗します。 Testform.aspxにDateプロパティがDateTime.MinValueの場合、AJAXが有効なWCFサービスが失敗する
Test.svc
Imports System.ServiceModel
Imports System.ServiceModel.Activation
Imports System.ServiceModel.Web
Imports System.Runtime.Serialization
<ServiceContract(Namespace:="WebApp")>
<AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Allowed)>
Public Class Test
<OperationContract()>
<WebGet()>
Public Function TestOperation() As CompositeType
Dim obj As New CompositeType
obj.DateProp = Nothing
obj.StringProp = "Test"
Return obj
End Function
End Class
<DataContract()>
Public Class CompositeType
<DataMember()>
Public Property DateProp() As Date
<DataMember()>
Public Property StringProp() As String
End Class
scripttagは
<script type="text/javascript">
$(document).ready(function() {
$.getJSON('./Test.svc/TestOperation', function (data) {
alert(data.d.DateProp);
});
});
</script>
のWeb.config
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="WebApp.TestAspNetAjaxBehavior">
<enableWebScript />
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
<services>
<service name="WebApp.Test">
<endpoint address="" behaviorConfiguration="WebApp.TestAspNetAjaxBehavior"
binding="webHttpBinding" contract="WebApp.Test" />
</service>
</services>
</system.serviceModel>
クロムディスプレイこの上の(serviceModel部)は、以下を呼び出しますエラーメッセージ:「loaに失敗しましたdリソース "となります。
この動作の説明/考え方は誰にもありますが、どのようにしてこの問題を防ぐことができますか?
あなたのアドバイスをありがとう;)
VB.NETについてはわかりませんが、C#ではDateTimeクラスをnullにすることはできません(ただし、nullを許可する場合を除く)。類似のものがここにあるのでしょうか? – Styxxy
Nothing/nullを代入すると、1900年1月1日の0:0:0という日付になります。しかし、私がDateTime.Nowを代入すると、要求は機能します... – Nicholas
日付フィールドを空にする(または、私たちが言うようにnullにする)場合は、フィールドはNULL可能でなければなりません。あなたの文脈で本当の意味を持っていない限り、いくつかの "ランダムな"値を割り当てないでください。 – Styxxy