当我运行此代码时,我会收到警告,说错误。
我的代码:
<script type="text/javascript">
debugger;
$(document).ready(function () {
SearchText();
});
function SearchText() {
$(".auto").autocomplete({
source: function (request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "Default.aspx/GetAutoCompleteData",
data: "{'fname':'" + document.getElementById('txtCategory').value + "'}",
dataType: "json",
success: function (data) {
response(data.d);
},
error: function (result) {
alert("Error");
}
});
}
});
}
</script>
[WebMethod]
public static List<string> GetAutoCompleteData(string CategoryName)
{
List<string> result = new List<string>();
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DbConnection"].ConnectionString))
{
using (SqlCommand cmd = new SqlCommand("select fname from tblreg where fname LIKE '%'+@CategoryText+'%'", con))
{
con.Open();
cmd.Parameters.AddWithValue("@CategoryText", CategoryName);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
result.Add(dr["fname"].ToString());
}
return result;
}
}
}
我想调试我的函数GetAutoCompleteData但是根本没有触发断点。 这段代码有什么问题?请指导。 我上面附有屏幕截图。
答案 0 :(得分:0)
您需要在方法上添加[WebMethod]
属性。所以你的方法看起来像这样
[WebMethod]
public static List<string> GetAutoCompleteData(string CategoryName)
{
....
如何使用网络方法link
在您编写url: "GetAutoCompleteData",
的jQuery中,您需要指定类或页面名称,然后指定方法名称。
你无法直接调用Method,你需要使用类(.aspx页面)然后使用方法。
答案 1 :(得分:0)
您需要更改数据属性的$.ajax()
调用值才能正确反映C#方法参数,即更改此行
data: "{'fname':'" + document.getElementById('txtCategory').value + "'}",
到
data: "{'CategoryName':'" + document.getElementById('txtCategory').value + "'}",
data属性应该与action方法的签名中的参数匹配。