簡體   English   中英

在asp.net后面的代碼中使用ajax調用方法

[英]invoking method using ajax at code behind in asp.net

嘿,我正在制作一個簡單的Web表單,它是一個產品詳細信息插入網頁。 我正在嘗試使用ajax調用插入。 沒有ajax,它就可以工作..但是$ .ajax並沒有在靜態方法后面調用我的代碼,這是問題的根源。 這是代碼:

$(document).ready(function () {
    $("#submit").click(function () {
        var cat = document.getElementById('DropDownList1').value;
        var nm = document.getElementById('name').value;
        var cde = document.getElementById('code').value;
        var dt = document.getElementById('dt').value;

        var price = document.getElementById('price').value;
        var f3 = document.getElementById('ty').innerHTML;

        alert("you clicked " + cat + " - " + nm + "-" + cde + "-" + dt + 
                "-" + price + "-" + f3 +  "-");

       //////////////uptil here alert gives the right value.

       $.ajax({
           method: "POST",
           contentType: "application/json", 
           url: "home.aspx/ins",
           dataType: "json",
           data: "{'Name :' + nm + 'code :' + cde +'category :'+ cat + 
              'date :'+ dt +'price :'+ pr +'img_name :' + f3}",
           //data:"{}",
           //async: false,
           success: function (response) {
               alert("User has been added successfully.");
               window.location.reload();
           }
       });
    })
});

//////////////////////////////// here is the code behind method:

[System.Web.Services.WebMethod]
public static void ins(string Name,string code,string category, DateTime date,
   int price,string img_name)
{
    productclass pc = new productclass();
    pc.Pr_name = Name;
    pc.Code = code;
    pc.Category = category;
    pc.Expiry = date;
    pc.Price = price;
    pc.Pr_image = img_name;

    dalinsert di = new dalinsert();
    bool flag = di.insert(pc);
}

我相信問題出在您的數據傳遞中:

data: "{'Name :' + nm + 'code :' + cde +'category :'+ cat +'date :'+ dt +'price :'+ pr +'img_name :' + f3}"

我在那里看到兩個可能的問題。 首先,您的“ +”在這里被視為文字,因為它們被雙引號引起來,且始終不會轉義。 我相信您要實現的目標是:

data: "{'Name :'"+ nm +"'code :'"+ cde +"'category :'"+ cat +"'date :'"+ dt +"'price :'"+ pr +"'img_name :'"+ f3 +"}"

但是,這仍然存在潛在的問題,因為我相信json的格式將不正確。 至少包含字符串變量的json字符串的預期語法為'{“ key1”:“ value1”,“ key2”:“ value2”}'。

確保自己的權利並保存自己的工作的一種更好的方法是使用JSON.stringify為您完成工作。

var temp = {};
temp.Name = nm;
temp.code = cde;
temp.category = cat;
temp.date = dt;
temp.price = pr;
temp.img_name = f3;
var data = JSON.stringify(temp);

通過webmethod將數據傳遞到ajax post的正確方法是這樣的。

var params = "{'Name' :'" + nm + "', 'code' :'" + cde + "', 'category' :'" + cat + "', 'date' : '" + dt + ", 'price' :'" + pr + "' , 'img_name' :'" + f3 + "' }" //在$.ajax...以上聲明此內容

data: params, //在$.ajax...

暫無
暫無

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

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