为Json发送控件数据的结构?

时间:2013-03-28 04:03:46

标签: c# asp.net json jquery

我喜欢在ASP.Net上使用JSON并通过WebMethods进行操作。

这是我对该webmethod的Ajax调用。

       $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "Voyage.aspx/V_Set",
            data: { 'Action': $('#txtNumber').val(), 'ID': $('#txtTag').val(), 'StartlID': $('#txtTag').val()},
            async: true,
            dataType: "json",
            success: function (data) {                  
                try {
                    alert("Record Inserted Successfully");
                } catch (ex) {
                    alert(ex);
                }
            },
            error: function (msg) {
                alert(error);
            }
        });

这里我首先尝试的数据格式是我的静态数据,格式是

     data: "{'Action':'Set','VID':'3','MasterID':'52','StartID':'1','LastID':'1'}"

这绝对正常,我已经调用了Web方法并完成了操作。

但是现在我必须通过控件动态地给出这些值。所以,当我试图将我的控制ID分配给数据时,Web方法不会被解雇。

任何人都可以通过发送直通控件来帮助完成数据结构

1 个答案:

答案 0 :(得分:0)

尝试在

行中使用客户端ID
data: { 'Action': $('#txtVoyageNumber').val(), 'VoyageMasterID': $('#txtVesselTag').val(), 'StartTerminalID': $('#txtVesselTag').val()}

如下

 "<%= someObject.ClientID %>" 

data: { 'Action': $('#<%=txtVoyageNumber.ClientID %>').val(), 'VoyageMasterID': $('#<%=txtTag.ClientID %>').val(), 'StartTerminalID': $('#<%=txtTag.ClientID %>').val()}

编辑1

现在你的功能看起来就行了

       $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "Voyage.aspx/V_Set",
            data: { 'Action': $('#<%=txtNumber.ClientID %>').val(), 'VoyageMasterID': $('#<%=txtVesselTag.ClientID %>').val(), 'StartTerminalID': $('#<%=txtTag.ClientID %>').val()},
            async: true,
            dataType: "json",
            success: function (data) {                  
                try {
                    alert("Record Inserted Successfully");
                } catch (ex) {
                    alert(ex);
                }
            },
            error: function (msg) {
                alert(error);
            }
        });