AJAX发送数据到后端C#问题



目前我遇到了试图将信息传递回后台代码的问题,在这种情况下,是用户从列表中选择的名称。我曾尝试将数据VN设置为一个对象并将其传递,但这也不起作用。目前,它似乎从未将其发送到后台代码,因为它会出错。VN的示例值是:;Location1 Building";

当AJAX调用的数据部分没有被使用,并且查询被硬编码到后面的代码中时,这种方法工作得很好。我相信我完全误解了它是如何运作的。我已经阅读了8个类似的线程,但对这些线程的修复在这里也不太奏效,导致了下面列出的错误。

JAVASCRIPT

$("#btnClient_Report").click("click", function CallService() {
var Cn = document.getElementById('client_input'); 
var VN = Cn.value;



alert("C1 Name: " + VN);
$.ajax({
traditional: true,
type: "POST",
url: '/ClientChart.aspx/Getdata',
data: JSON.stringify(VN), 
contentType: "application/json; charset=utf-8",
dataType: "json",
processData: true,
success: function (msg) {
alert("Success: " + msg.d);
CCData = msg.d;

bindClientChart();
},
error: function(ermsg){
alert(ermsg.responseText);
}
});
});

隐藏代码-C#

[WebMethod]
public static string[] Getdata(string VN) //test the connection and rerieve data requested. 
{
var loc_name = VN;

//connect to DB and query more info.

目前的错误是"strong>";无法转换\u0027System类型的对象。字符串\u0027以键入\u0027System。集合。通用/IDictionary‘2…’

尽管尝试将ajax数据从JSON.stringify(VN)更改为VN会导致";无效的JSON原语">错误。

尝试将VN更改为类似var VN = { ID:[Cn.value]};的简单对象会导致类似的错误。

jquery$。AJAX函数文档说is接受类型字符串,所以我想了解我是如何搞砸的,并更好地理解这一点。感谢您的帮助!

经过反复试验,我发现我的错误是ajax数据行需要:

数据:'{VN:"+$("#client_input"(.val((+"}',

单独插入字符串不能正常工作,因为它需要标识符,即使您尝试将字符串作为相同的标识符名称传递。Hop这可能会帮助将来的人从我愚蠢的错误中吸取教训

执行类似操作将字符串传递给方法。。

$.ajax({
type: "POST",
url: "ClientChart.aspx/Getdata",
contentType: "application/json; charset=utf-8",
data: "{'VN':'" + VN + "'}",
async: true,
cache: true,
dataType: "json",
success: function (data) {
alert("Success: " + data.d);
bindClientChart();
},
error: function(ermsg){
debugger;
alert(ermsg.d);
}
});

最新更新