【发布时间】:2014-04-01 02:52:25
【问题描述】:
在从 JavaScript 调用 ASP.NET WebService 期间如何将“NULL”值传递给可为空的字段?
我通过以下方式从 JavaScript 调用方法:
ws_data.SaveTasks(eval({"MyValue":"null"}), OnSaveComplete, OnError, OnTimeOut);
当我这样做时,我收到一个错误(框架调用 OnError):
null 不是 Int32 的有效值
如果我传递有效整数而不是“null” - 一切正常。
请指教:我做错了什么?如何传递将被“翻译”为 NULL .NET 对象的“null”值?
欢迎提出任何想法!
附:以下是一些细节。
MyData 重要部分的声明:
public class MyData
{
...
public int? MyValue { get; set; }
}
ASP.NET Web 服务声明:
[WebService(Namespace = "...")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class ws_data : WebService
{
[WebMethod(true)]
public object SaveData(MyData data)
{...}
}
而 ws_data 是通过 ScriptManager 声明的:
<asp:ScriptManager runat="server">
<Services>
<asp:ServiceReference Path="/ws_data.asmx" />
</Services>
</asp:ScriptManager>
【问题讨论】:
-
你有没有试图不通过任何东西?
-
传递
null,而不是字符串"null"。 -
如果它是 Nullable 为什么你还要传递任何东西?
-
我没有试图不通过任何东西......看起来这是一个想法。但我更喜欢显式声明。感谢您的建议。
标签: c# javascript json web-services