如何在从 JavaScript 调用 Web 服务期间将“NULL”值传递到可空字段中 ASP.NET
本文关键字:值传 NET ASP 字段 NULL JavaScript 调用 Web 服务期 | 更新日期: 2023-09-27 17:55:29
如何在从JavaScript调用WebService期间将"NULL"值传递到可空字段中 ASP.NET?
我从 JavaScript 中以以下方式调用方法:
ws_data.SaveTasks(eval({"MyValue":"null"}), OnSaveComplete, OnError, OnTimeOut);
当我这样做时,我收到一个错误(框架调用 OnError):
null 不是 Int32 的有效值
如果我传递有效的整数而不是"null" - 一切正常。
请指教:我做错了什么?如何将将被"翻译"为空的 .NET 对象的"null"值传递?
欢迎任何想法!
附言以下是一些详细信息。
MyData重要部分的声明:
public class MyData
{
...
public int? MyValue { get; set; }
}
ASP.NET 网络服务的声明:
[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。 删除引号以使其成为实际的 null。
{"MyValue": null}
我也不确定你的eval
,我认为它可以省略,因为eval
应该接受一个字符串并将其解释为 JavaScript。
ws_data.SaveTasks({"MyValue": null}, OnSaveComplete, OnError, OnTimeOut);