webservice错误500内部错误asp.net

时间:2015-05-04 09:10:15

标签: c# jquery asp.net web-services

我在文档就绪函数中用JQuery编写了一个webservice调用,但它没有调用函数

以下是代码 JQuery的

`<script type="text/javascript">
$( document ).ready(function() {
var section = "Table - TLI (STOCK)";
$.ajax({
type: "GET",contentType: "application/json; charset=utf-8",
        url: "pgWebService.aspx/SliderBlock",
        dataType: "json",
        data: "{'section':'" + section + "'}",
        success: function (res) {
            //$("#Text1").val(res.text);
            console.log(res);
            alert("DONE");
        }
    });
});
</script>`

C#代码 pgWebService

public static string SliderBlock(string section)
{
    string html = "<ul class='maketabs listing-table search-filter change-view'>";
    SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["TLI"].ConnectionString);
    SqlCommand cmd = new SqlCommand();
    cn.Open();
    cmd.Connection = cn;
    cmd.CommandText = "Select * from CategoryDetails where section=" + section;
    SqlDataReader rs = cmd.ExecuteReader();
    while (rs.Read())
    {
        html="<li>"+rs.getValue(0).toString()+"</li>";
    }
    rs.Close();
    cmd.Dispose();
    cn.Close();
    html = html + "</ul>";
    return html;
}

3 个答案:

答案 0 :(得分:2)

如果您的方法SliderBlock落后于代码而不是让ajax调用您的方法WebMethod,那么您需要将其设为static并由{{1}调用您需要在WebMethod上发出GET个请求。

enable GET

答案 1 :(得分:0)

由于您的代码具有扩展名.aspx,我假设您正在使用代码隐藏(Page Method)。因此,您需要对函数签名进行这些更改

[System.Web.Services.WebMethod]
public static string SliderBlock(string section)

即,

  1. 你的方法应该是静态的。
  2. 您的方法应使用System.Web.Services.WebMethod
  3. 进行修饰

    在$ .ajax调用中,将dataType更改为json。

    dataType: "json"
    

    另外,请记住pgWebService.aspx.cs 中的PageMethid只能从 pgWebService.aspx中调用

答案 2 :(得分:0)

ajax请求中仍有错误:

Content-Type :将数据发送到服务器时,请使用此内容类型。但是,除了查询字符串参数之外,您不会向服务器发送数据,因为您正在进行GET。因此,如果您使用webbrowser开发人员工具检查请求,您会看到使用此URL的GET: localhost / pgWebService.aspx / SliderBlock?section = selectedSection ,因为......

数据:要发送到服务器的数据。如果不是字符串,它将转换为查询字符串。它附加到GET请求的URL。

dataType :您期望从服务器返回的数据类型。但是在您的webService中,您将返回一个HTML而不是JSON的字符串。