C# 在使用Newtonsoft之后,ajax调用在asp.net中返回HTML响应,而不是Json响应

C# 在使用Newtonsoft之后,ajax调用在asp.net中返回HTML响应,而不是Json响应,c#,jquery,asp.net,json,ajax,C#,Jquery,Asp.net,Json,Ajax,我正在使用ajax调用,使用asp.net web表单,按照我的ajax代码绑定下拉索引更改事件上的数据 var e = document.getElementById("<%=ddlEducation.ClientID%>"); var value = e.options[e.selectedIndex].value; var text = e.options[e.selectedIndex].text;

我正在使用ajax调用,使用asp.net web表单,按照我的ajax代码绑定下拉索引更改事件上的数据

var e = document.getElementById("<%=ddlEducation.ClientID%>");
                var value = e.options[e.selectedIndex].value;
                var text = e.options[e.selectedIndex].text;
                if (value == "0") {
                    $('#dvRecords').empty();
                    alert("Please Select Education");
                    return false;
                }

                var obj = { "iEduid": value};
                var myJSON = JSON.stringify(obj);
                //Filling Grid View  
                $.ajax({
                    type: 'POST',
                    contentType: "application/json; charset=utf-8",
                    url: 'EditProfile.aspx/BINDEducationDATA',
                    data: myJSON,
                    dataType: 'JSON',
                    success: function (response) {
                        document.getElementById("ctl00_ContentPlaceHolder2_lblstram").value = response.d[i].eduStream
                        document.getElementById("ctl00_ContentPlaceHolder2_lbldescs").value = response.d[i].Edu_Description
                    },
                    error: function (xhr, status, error) {
                        console.log(xhr);
                        alert(status);
                        alert(error);
                    }
                });

任何帮助都将不胜感激。

您应该将
[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
添加到您的方法中

[WebMethod]
 [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
 public static List<EduDesc> BINDEducationDATA(string iEduid)
 {
}
[WebMethod]
[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
公共静态列表BINDEducationDATA(字符串iEduid)
{
}

您应该在方法中添加
[ScriptMethod(ResponseFormat=ResponseFormat.Json)]

[WebMethod]
 [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
 public static List<EduDesc> BINDEducationDATA(string iEduid)
 {
}
[WebMethod]
[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
公共静态列表BINDEducationDATA(字符串iEduid)
{
}
包括

using Newtonsoft.Json;
并使用以下命令更改脚本WebMethod属性:

[WebMethod, ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = false)]
你应该像这样:

[WebMethod, ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = false)]
public static List<EduDesc> BINDEducationDATA(string iEduid)
{
    List<EduDesc> details = new List<EduDesc>();
    DataTable dtManager = new DataTable();

    using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["constr"].ConnectionString))
    {
        SqlCommand cmd = new SqlCommand();
        SqlDataAdapter da = new SqlDataAdapter();
        cmd = new SqlCommand("Select Edu_Stream,Edu_Description from tbl_education WHERE ID='" + iEduid + "'", con);
        da.SelectCommand = cmd;
        da.Fill(dtManager);
    }

    foreach (DataRow dtrow in dtManager.Rows)
    {
        EduDesc logs = new EduDesc();
        logs.Edu_desc = (dtrow["Edu_Description"].ToString());
        logs.eduStream = dtrow["Edu_Stream"].ToString();
        details.Add(logs);
    }
    return JsonConvert.SerializeObject(details);
}
[WebMethod,ScriptMethod(ResponseFormat=ResponseFormat.Json,UseHttpGet=false)]
公共静态列表BINDEducationDATA(字符串iEduid)
{
列表详细信息=新列表();
DataTable dtManager=新的DataTable();
使用(SqlConnection con=newsqlconnection(ConfigurationManager.ConnectionStrings[“constr”].ConnectionString))
{
SqlCommand cmd=新的SqlCommand();
SqlDataAdapter da=新的SqlDataAdapter();
cmd=new-SqlCommand(“从tbl_教育中选择Edu_流,Edu描述,其中ID=”“+iEduid+””,con);
da.SelectCommand=cmd;
da.Fill(数据传输经理);
}
foreach(dtManager.Rows中的DataRow dtrow)
{
EduDesc logs=新的EduDesc();
logs.Edu_desc=(dtrow[“Edu_Description”].ToString());
logs.eduStream=dtrow[“Edu_Stream”].ToString();
详细信息。添加(日志);
}
返回JsonConvert.SerializeObject(详细信息);
}
包括

using Newtonsoft.Json;
并使用以下命令更改脚本WebMethod属性:

[WebMethod, ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = false)]
你应该像这样:

[WebMethod, ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = false)]
public static List<EduDesc> BINDEducationDATA(string iEduid)
{
    List<EduDesc> details = new List<EduDesc>();
    DataTable dtManager = new DataTable();

    using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["constr"].ConnectionString))
    {
        SqlCommand cmd = new SqlCommand();
        SqlDataAdapter da = new SqlDataAdapter();
        cmd = new SqlCommand("Select Edu_Stream,Edu_Description from tbl_education WHERE ID='" + iEduid + "'", con);
        da.SelectCommand = cmd;
        da.Fill(dtManager);
    }

    foreach (DataRow dtrow in dtManager.Rows)
    {
        EduDesc logs = new EduDesc();
        logs.Edu_desc = (dtrow["Edu_Description"].ToString());
        logs.eduStream = dtrow["Edu_Stream"].ToString();
        details.Add(logs);
    }
    return JsonConvert.SerializeObject(details);
}
[WebMethod,ScriptMethod(ResponseFormat=ResponseFormat.Json,UseHttpGet=false)]
公共静态列表BINDEducationDATA(字符串iEduid)
{
列表详细信息=新列表();
DataTable dtManager=新的DataTable();
使用(SqlConnection con=newsqlconnection(ConfigurationManager.ConnectionStrings[“constr”].ConnectionString))
{
SqlCommand cmd=新的SqlCommand();
SqlDataAdapter da=新的SqlDataAdapter();
cmd=new-SqlCommand(“从tbl_教育中选择Edu_流,Edu描述,其中ID=”“+iEduid+””,con);
da.SelectCommand=cmd;
da.Fill(数据传输经理);
}
foreach(dtManager.Rows中的DataRow dtrow)
{
EduDesc logs=新的EduDesc();
logs.Edu_desc=(dtrow[“Edu_Description”].ToString());
logs.eduStream=dtrow[“Edu_Stream”].ToString();
详细信息。添加(日志);
}
返回JsonConvert.SerializeObject(详细信息);
}

请发布您的CS codequestion已更新其返回XML的可能副本我正在获取HTMl,因此我的问题不同请发布您的CS codequestion已更新其返回XML的可能副本我正在获取HTMl,因此我的问题不同上述代码未成功i cnt将列表对象转换为字符串这是一个片段将列表对象转换为字符串的步骤:上面的代码i cnt convert List object to string未成功此处有一个将列表对象转换为字符串的代码段: