webservice的错误500 asp.net

问题描述:

我已经在准备文件功能编写的Web服务调用的JQuery的,但它不是调用函数webservice的错误500 asp.net

下面内部错误是代码 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; 
} 
+1

它是在代码后面还是在单独的webserivce中? – Mairaj

如果你的方法SliderBlock在后面的代码比使你的方法WebMethod是由ajax调用。您还需要将其设置为static并由GET调用,您需要在您的WebMethod上请求enable GET

[System.Web.Services.WebMethod] 
[System.Web.Script.Services.ScriptMethod(UseHttpGet = true)] 
public static string SliderBlock(string section) 
{ 
//Your code here 
} 
+0

你忘了代码中的'static'。 +1 – naveen

+0

@naveen thnks.Updated它, – Mairaj

+0

@MairajAhmad得到了这一点,我做了必要的修改,但仍然给我500内部错误 – bhavikshah28

由于您的代码有扩展名.aspx我假设您使用的是代码隐藏(Page Method)。所以,你需要做这些改变你的函数签名

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

也就是说,

  1. 你的方法应该是静态的。
  2. 你的方法应该System.Web.Services.WebMethod

而在你的$就调用来装饰,具体的数据类型更改为JSON。

dataType: "json" 

另外,请记住,在pgWebService.aspx.cs 的PageMethid只能称为从 pgWebService.aspx

+0

如何从webmethod调用文本框的文本更改事件? – bhavikshah28

你仍然在Ajax请求的错误:

内容类型:将数据发送到服务器时,请使用此内容类型。但是,除了查询字符串参数之外,您不会将数据发送到服务器,因为您正在执行GET。所以,如果你用网页浏览器开发者工具检查请求你看到这个URL一个GET:本地主机/ pgWebService.aspx/SliderBlock节= selectedSection因为......

数据:数据被发送到服务器。它被转换成查询字符串,如果还不是字符串的话。它附加到GET请求的url。

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

+0

你可以举一些例子 – bhavikshah28