使用$ .ajax将数据传递给webform方法

时间:2012-03-29 07:29:44

标签: jquery asp.net c#-4.0 datatables

这是我的ManageCategory.js

function SaveArea() {
    debugger;
    if (flag_Area == 0) {
         Temp = {
            'Category_id': $("#txtAddArea_Id").val(),
            'Category_name': $("#txtAddArea_Name").val().substr(0, 1).toUpperCase() + $("#txtAddArea_Name").val().substr(1).toLowerCase()

        };



$.ajax({
            type: "POST",
            url: "WebForm1.aspx/InsertCategory",
            dataType: "json",
           // data: {},
            data: JSON.stringify(Temp),
            // data: JSON.stringify(contact, memberfilter, "\t"),
            contentType: "application/json; charset=utf-8",
            //processData: true,
            success: function (Data) {
                alert(Data);
                //AreaList = Data;
                if (Data == "true") {
                    oTable_Area.fnClearTable();
                    GetArea();
                    jsonParse = JSON.parse(AreaList.d);
                    oTable_Area.fnAddData(jsonParse);
                    jNSuccessMsg("New Category is added in database successfully.");
                }
                else if (Data == "false") {
                    jNErrorMsg("Attention", "Category is already exist in the database");
                }
                else {
                    jNErrorMsg("Error In Add Category", Data);
                }
            }

        });
       // debugger;
        Id_Area = null;


    }

这是我的WebForm1.aspx.cs


 [WebMethod]
        public static string InsertCategory(string data)
        {
            IService1 wcfclient = ServiceHelper.InitService<IService1>();
            clsCategoryBLL obj = JsonConvert.DeserializeObject<clsCategoryBLL>(data);
            bool flag = false;
            flag = wcfclient.InsertCategory(obj);
            return (flag.ToString());
        }

我无法在jquery数据表中添加数据。 $ .ajax没有正确地将数据传递给InsertCategory(Web表单方法)。

我哪里出错了?请帮帮我... tnx提前

1 个答案:

答案 0 :(得分:1)

InsertCategory pagemethod中的参数应与发布的JSON对象匹配。 为了使您的代码与Temp JSON对象一起使用,请将InsertCategory页面方法更改为以下(param名称区分大小写)

[WebMethod]
public static string InsertCategory(integer Category_id, string Category_name ){

// ...implementation...

}

你也不需要在$ .ajax中使用JSON.stringify作为数据参数,jQuery需要将数据转换为查询字符串,所以如果你只是自己传递对象就更好了。

您可能想查看这些博客文章,了解有关使用asp.net pagemethods和jquery的更多信息。