簡體   English   中英

在從JavaScript到ASP.NET WebService的調用過程中,如何將“ NULL”值傳遞給可為空的字段

[英]How to pass “NULL” value into nullable field during call from JavaScript to ASP.NET WebService

在從JavaScript到ASP.NET WebService的調用期間,如何將“ NULL”值傳遞給可為空的字段?

我通過以下方式從JavaScript調用方法:

ws_data.SaveTasks(eval({"MyValue":"null"}), OnSaveComplete, OnError, OnTimeOut);

當我這樣做時,我會收到一個錯誤(框架調用OnError):

null不是Int32的有效值

如果不是“ null”,而是傳遞有效的整數-一切正常。

請告知:我做錯了什么? 如何傳遞將被“轉換”為NULL .NET對象的“ null”值?

任何想法都歡迎!

PS這里是一些細節。

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。 刪除引號以使其實際為空。

{"MyValue": null}

我也不確定您的eval ,我認為可以將其省略,因為eval應該采用字符串並將其解釋為JavaScript。

ws_data.SaveTasks({"MyValue": null}, OnSaveComplete, OnError, OnTimeOut);

暫無
暫無

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

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