C# 没有来自泛型处理程序的响应
由于上下文关系,我的AjaxHandler.ashx出现问题。当我使用JQuery调用发送请求时,请求[“操作”]为空。有人能帮我吗 注意:我使用的是html控制器,而不是asp,net服务器控制器C# 没有来自泛型处理程序的响应,c#,jquery,asp.net,json,C#,Jquery,Asp.net,Json,由于上下文关系,我的AjaxHandler.ashx出现问题。当我使用JQuery调用发送请求时,请求[“操作”]为空。有人能帮我吗 注意:我使用的是html控制器,而不是asp,net服务器控制器 <script type="text/javascript"> $(function () { $("#btnSearch").click(function () { /*var skill = $("#ddlSkills optio
<script type="text/javascript">
$(function () {
$("#btnSearch").click(function () {
/*var skill = $("#ddlSkills option:selected").val();
var types = $("#ddlTypes option:selected").val();
var topics = $("#ddlTopics option:selected").val();
var sortBy = $("#ddlSortBy option:selected").val();
*/
$.ajax({
url: "../ideapark/DesktopModules/ResourcesFilter/AjaxHandler.ashx",
contentType: "application/json; charset=uft-8",
type: "POST",
data: $('form').serialize(),
success: function(data) {
for(var i = 0; i < data.length; i++)
{
//t ajax handler recollection of resources.
//U NEED TDESERIALIZE
var resID = data.response[i].ID;
var summary = data.response[i].Summary;
var pageID = data.response[i].PageID;
var name = data.response[i].Name;
var createdOn = data.response[i].CreatedOn
var Total = data.response[i].Total;
}
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
alert(errorThrown);
alert(XMLHttpRequest);
alert(textStatus);
console.log(errorThrown);
console.log(XMLHttpRequest);
console.log(textStatus);
console.log(errorThrown);
}
});
});
});
</script>
/// <summary>
/// Summary description for AjaxHandler
/// </summary>
public class AjaxHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/json";
//context.Response.Write("Hello World");
string response = "";
string var = context.Request["Action"].ToString();
switch (context.Request["Action"])
{
case "ResponseFilterSearch":
response += "{";
Dictionary<string, Object> jsonObject = new Dictionary<string, object>();
string skill = context.Request["Skill"].ToString();
string type = context.Request["Type"].ToString();
string focus = context.Request["focus"].ToString();
string keyword = context.Request["Keyword"];
string sortby = context.Request["SortBy"];
string pageNumber = context.Request["pagenumber"];
SqlDataProvider sqlConn = new SqlDataProvider();
DataSet dsResults = SqlHelper.ExecuteDataset(sqlConn.ConnectionString, "spResourceSearch", skill, type, focus, keyword, sortby, pageNumber);
foreach (System.Data.DataRow row in dsResults.Tables[0].Rows)
{
response += "\"ID\":" + "\"" + row["Id"].ToString() + "\"";
response += "\"Summary\":" + "\"" + row["summary"].ToString() + "\"";
response += "\"PageID\":" + "\"" + row["pageId"].ToString() + "\"";
response += "\"Name\":" + "\"" + row["name"].ToString() + "\"";
response += "\"CreatedOn\":" + "\"" + row["createdOn"].ToString() + "\"";
response += "\"Total\":" + "\"" + row["total"].ToString() + "\"";
}
response += "}";
break;
}
//this returns a json string
context.Response.Write(response);
}
public bool IsReusable
{
get
{
return false;
}
}
}
$(函数(){
$(“#BTN搜索”)。单击(函数(){
/*var skill=$(“#ddlSkills选项:选中”).val();
var types=$(“#ddlTypes选项:选中”).val();
var topics=$(“#ddlTopics选项:选中”).val();
var sortBy=$(“#ddlSortBy option:selected”).val();
*/
$.ajax({
url:“../ideapark/DesktopModules/ResourcesFilter/AjaxHandler.ashx”,
contentType:“application/json;charset=uft-8”,
类型:“POST”,
数据:$('form')。序列化(),
成功:功能(数据){
对于(变量i=0;i
您似乎混淆了内容类型
和数据类型
contentType
表示请求主体的内容类型(即发送到服务器的数据),您已将其设置为json,而不是$('form')。serialize()
将生成的内容类型$('form').serialize()
在应用程序/x-www-form-urlencoded
中生成数据,这是$.ajax中的默认值
现在,dataType
是响应主体的内容类型(从服务器接收的数据),您的代码应该是json
$.ajax({
url: "../ideapark/DesktopModules/ResourcesFilter/AjaxHandler.ashx",
dataType: "json",
type: "POST",
data: $('form').serialize(),
success: function(data) {
...
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
....
}
});
您似乎混淆了
内容类型
和数据类型
contentType
表示请求主体的内容类型(即发送到服务器的数据),您已将其设置为json,而不是$('form')。serialize()
将生成的内容类型$('form').serialize()
在应用程序/x-www-form-urlencoded
中生成数据,这是$.ajax中的默认值
现在,dataType
是响应主体的内容类型(从服务器接收的数据),您的代码应该是json
$.ajax({
url: "../ideapark/DesktopModules/ResourcesFilter/AjaxHandler.ashx",
dataType: "json",
type: "POST",
data: $('form').serialize(),
success: function(data) {
...
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
....
}
});