如何将ajax post调用中的多个属性传递给aspx页面webmethod?

时间:2014-08-14 06:43:07

标签: c# javascript jquery asp.net

我正在使用下面的代码,但我没有获得对象myObj的价值。我没有使用MVC。我在这里使用了简单的asp.net(C#)。

  • 类文件

    public class MyClass
    {
        public string title { get; set; }
        public string songPath { get; set; }
    }
    
  • .aspx page

    [System.Web.Services.WebMethod]
    public static string PostData(MyClass myObj)
    {            
        // myObj.title should have value = "song title etc...";            
        // myObj.songPath should have value = "song path edc...";            
        return "done";
    }
    
  • JS

    <script type = "text/javascript">
    function PostData() {
        $.ajax({
            type: "POST",
            url: "CreateLeave.aspx/PostData",            
            data: { title: "song title etc...", songPath: "song path edc..." },
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: OnSuccess,
            failure: function (response) {
                alert("error");
            }
        });
    }
    function OnSuccess(response) {
        alert("success");
    }
    </script>
    

请让我知道我错过了什么。 请给我一些建议。 感谢

2 个答案:

答案 0 :(得分:1)

如果在webMethod中使用多个参数,然后在该方法中创建对象,该怎么办?

[System.Web.Services.WebMethod]
public static string PostData(string title, string songPath, //...etc)
{   
    MyClass myObj = new myClass();
    myObj.title = title;           
    myObj.songPath = songPath;
    return "done";
}

答案 1 :(得分:1)

尝试在ajax调用中更改这样的数据属性

data: { "myObj": { title: "song title etc...", songPath: "song path edc..." } }