How to format JSON for asp.net webmethod that takes class parameter

前端 未结 2 702
耶瑟儿~
耶瑟儿~ 2020-12-21 11:51

I have the following webmethod on my asp.net code behind page:

[WebMethod(EnableSession = true)]
public static bool SaveFailureData(SimpleFailureData data)
{         


        
相关标签:
2条回答
  • 2020-12-21 12:19

    Follow the Below step and you will get your required output

    Ajax function Call

    function CallAjaxRequest() { 
        var Simplefailuredata = {};
        Simplefailuredata.Id = 1;
        Simplefailuredata.Comments = 'Comments-1';
        Simplefailuredata.Score = 500.25;
        Simplefailuredata.Adjustment = 700.25;
        Simplefailuredata.ShutdownData = new Array();
        Simplefailuredata.ShutdownData[0] = new Object({ Id: 2, Description: "Desc-1",  CausedShutdown: true, ShutdownType: "ShutdownType-1" });
        Simplefailuredata.ShutdownData[1] = new Object({ Id: 5, Description: "Desc-2", CausedShutdown: false, ShutdownType: "ShutdownType-2" });
        var object = JSON.stringify({ simplefailuredata: Simplefailuredata });
        $.ajax({
            type: "POST",
            url: "Default2.aspx/GetResponse",
            contentType: 'application/json; charset=utf-8',
            data: object,
            dataType: 'json',
            cache: false
        });
    }
    
    
    <form id="form1" runat="server">
     <div>
     <input type="button" id="btn"  value ="t" onclick="CallAjaxRequest();"   />
     </div>
    </form>
    

    Code Behind

    public partial class Default2 : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {
    
    }
    [System.Web.Services.WebMethod]
    public static string GetResponse(simplefailuredata simplefailuredata)
    {
        return "";
    }
    }
    
    
    
    public class simplefailuredata 
    { 
    public int Id; 
    public string Comments; 
    public double Score; 
    public double Adjustment; 
    public List<shutdownData> ShutdownData; 
    } 
    
    public class shutdownData 
    { 
    public int Id { get; set; } 
    public string Description { get; set; } 
    public bool CausedShutdown { get; set; }
    public string ShutdownType { get; set; }
    }  
    
    0 讨论(0)
  • 2020-12-21 12:31

    ok try this

        public static bool SaveFailureData(string sampleFailure)
        {
            JavaScriptSerializer s = new JavaScriptSerializer();
            SimpleFailureData sdata = s.Deserialize<SimpleFailureData>(sampleFailure);
            return true;
        }
    
        var json = {
                    "Comments": "",
                    "Score": 66.66666666666667,
                    "Adjustment": 0,
                    "ShutdownData": [{ "Id": "401", "CausedShutdown": true, "ShutdownType": "NORMAL"}]
                }
    
                var data = JSON.stringify(json);
    
                $.ajax({
                    type: "POST",
                    url: 'Default.aspx/SaveFailureData',
                    contentType: 'application/json; charset=utf-8',
                    data: "{'sampleFailure' : '" + data + "'}",
                   // data: data,
                    dataType: 'json',
                    success: function (msg) {
                        alert(msg.d);
                    },
                    error: function (msg) {
                        alert('Error!');
                    }
                });
    
            });
    

    you will get the data in sdata object.

    0 讨论(0)
提交回复
热议问题