【发布时间】:2016-10-09 10:53:12
【问题描述】:
我正在尝试使用 AJAX 代码将一些特定数据传递给 C# 代码隐藏,但无法完成。我尝试过使用纯文本数据类型和 json 格式,但它们都不适合我。
我尝试使用json方法发送数据时出现以下错误:
内部服务器错误
使用文本方法时,没有出现错误,代码是通过success函数来的,但实际上数据并没有发送到代码隐藏类的方法中
这是使用json格式的ajax代码:
function searchClicked(sCriterion) {
$.ajax({
type: "POST",
url: "TokenRegistration.aspx/GetSearchCritetrion",
data: "{creiterion : " + sCriterion + " }",
contentType: "application/json; charset=utf-8",
dataType: "json",
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Request: " + XMLHttpRequest.toString() + "\n\nStatus: " + textStatus + "\n\nError: " + errorThrown);
},
success: function (result) {
alert("We returned: " + result);
}
});
}
这是使用文本格式的ajax代码:
function searchClicked(sCriterion) {
$.ajax({
type: "POST",
url: "TokenRegistration.aspx/GetSearchCritetrion",
data: sCriterion,
contentType: "application/text; charset=utf-8",
dataType: "text",
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Request: " + XMLHttpRequest.toString() + "\n\nStatus: " + textStatus + "\n\nError: " + errorThrown);
},
success: function (result) {
alert("We returned: " + result);
}
});
}
这也是数据应该发送到的我的代码隐藏方法:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void GetSearchCritetrion(object selectedItem)
{
var json = new JavaScriptSerializer();
var data = json.Deserialize<Dictionary<string, Dictionary<string, string>>[]>(selectedItem.ToString());
}
我在另一个项目中使用了完全相同的 ajax 代码,它运行良好,但在这里我没有得到错误所在,所以请给点建议?
【问题讨论】:
-
控件是否达到
GetSearchCritetrion()动作方法? -
不,亲爱的,它没有达到那种方法,@Kumar_Vikas
-
为什么需要
object selectedItem?你可以通过 SelectedItem 代替吗?还是字符串还是类? -
它应该是与.aspx.cs文件一起使用的静态方法
-
@JericCruz 我已经将其更改为
string,但仍然出现相同的错误
标签: javascript c# jquery json ajax