1
我必須通過JSON.stringify
的值並在服務器端接收。如何在JSON.stringify中傳遞JQuery變量並在服務器端接收?
注:當我嘗試直接傳遞值而不使用JQuery變量時,它工作正常。
沒有jQuery的變量(它的工作)
data: JSON.stringify({ "VendorID": "1106", "Date": "2016-12-30" }),
當我試圖通過JQuery的變量傳遞價值,
錯誤消息
它拋出內部服務器錯誤
「過程或函數'FVendorAging'需要參數'@Date',它沒有提供。」
轉換日期格式從(DD-MM-YYYY),以使用JQuery(YYYY-MM-DD)
if ($('#ContentPlaceHolder1_txtDate').val() !== '') {
dateAr = $('#ContentPlaceHolder1_txtDate').val().split('-');
var newDates = dateAr[2] + '-' + dateAr[1] + '-' + dateAr[0];
alert('Date is not empty = ' + newDates); //2017-07-11
}
Ajax代碼
$.ajax({
type:"POST",
contentType:"application/json;charset=utf-8",
url: "GPCreateCheque.aspx/BindData",
//data:"{}",
data: JSON.stringify({ "VendorID": +selecteVendorID, "Date": +newDates }),
dataType:"json",
success: function (data) {
alert("success = " + data.d[0].DocumnetNo);
for(var i=0;i<data.d.length;i++){
$("#ContentPlaceHolder1_GridView1").append("<tr><td><input id=\"Checkbox" + i + "\" class=\"checkBoxClass\" type=\"checkbox\" /></td><td>" + data.d[i].DocumnetNo + "</td><td>" + data.d[i].Date + "</td><td class='ActualAmount' >" + data.d[i].OriginalAmount + "</td></tr>");
}
},
error:function(result){
alert("Error");
}
})
C#代碼
[WebMethod]
public static UserDetails[] BindData(string VendorID,string Date)
{
DataTable dt = new DataTable();
List<UserDetails> details = new List<UserDetails>();
string cs = ConfigurationManager.ConnectionStrings["GPMatajerAlSaudia"].ConnectionString;
using (SqlConnection con = new SqlConnection(cs))
{
SqlCommand cmd = new SqlCommand("FVendorAging", con);
cmd.CommandType = CommandType.StoredProcedure;
//cmd.Parameters.AddWithValue("@Date", "2017-07-11");
//cmd.Parameters.AddWithValue("@VendorID", "1106");
cmd.Parameters.AddWithValue("@Date", Date);
cmd.Parameters.AddWithValue("@VendorID", VendorID);
con.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
foreach (DataRow drow in dt.Rows)
{
UserDetails user = new UserDetails();
user.DocumnetNo = drow["DocumnetNo"].ToString();
user.Date = drow["Date"].ToString();
user.OriginalAmount = drow["OriginalAmount"].ToString();
details.Add(user);
}
}
return details.ToArray();
}
天才,你是對的。它正在工作。但我不能接受另外9分鐘的回答。我稍後會接受答案。 –