[英]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.