Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 使用web服务自动完成文本框_Asp.net_Web Services_Jquery - Fatal编程技术网

Asp.net 使用web服务自动完成文本框

Asp.net 使用web服务自动完成文本框,asp.net,web-services,jquery,Asp.net,Web Services,Jquery,我已经创建了web服务,我正在从客户端脚本调用它。但它显示了一个错误。我不明白错误是从哪里来的。我还在web服务和客户端脚本中的不同点设置断点,但没有遇到这些断点。这是我写的代码 类文件的代码 public class GetContacts { public int ID { get; set; } public string Name { get; set; } public GetContacts() { // // TODO: Add constructor logic

我已经创建了web服务,我正在从客户端脚本调用它。但它显示了一个错误。我不明白错误是从哪里来的。我还在web服务和客户端脚本中的不同点设置断点,但没有遇到这些断点。这是我写的代码

类文件的代码

public class GetContacts
{ 
public int ID { get; set; }
public string Name { get; set; }
public GetContacts()
{
    //
    // TODO: Add constructor logic here
    //
}
public List<GetContacts> FetchContacts()
{
    List<GetContacts> ContactList = new List<GetContacts>();
    ContactList.Add(new GetContacts() { ID = 1, Name = "XXX<1111111111>" });
    ContactList.Add(new GetContacts() { ID = 2, Name = "XXX<1111111111>" });
    ContactList.Add(new GetContacts() { ID = 3, Name = "XXX<1111111111>" });
    ContactList.Add(new GetContacts() { ID = 4, Name = "XXX<1111111111>" });
    ContactList.Add(new GetContacts() { ID = 5, Name = "XXX<1111111111>" });
    ContactList.Add(new GetContacts() { ID = 6, Name = "XXX<1111111111>" });
    ContactList.Add(new GetContacts() { ID = 7, Name = "XXX<1111111111>" });
    ContactList.Add(new GetContacts() { ID = 7, Name = "XXX<1111111111>" });

    return ContactList;
}
} 
public类获取联系人
{ 
公共int ID{get;set;}
公共字符串名称{get;set;}
公众联络人()
{
//
//TODO:在此处添加构造函数逻辑
//
}
公共联系人列表()
{
列表联系人列表=新列表();
Add(new GetContacts(){ID=1,Name=“XXX”});
Add(new GetContacts(){ID=2,Name=“XXX”});
Add(new GetContacts(){ID=3,Name=“XXX”});
Add(new GetContacts(){ID=4,Name=“XXX”});
Add(new GetContacts(){ID=5,Name=“XXX”});
Add(new GetContacts(){ID=6,Name=“XXX”});
Add(new GetContacts(){ID=7,Name=“XXX”});
Add(new GetContacts(){ID=7,Name=“XXX”});
返回联系人列表;
}
} 
web服务的代码

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment  the following line. 
 [System.Web.Script.Services.ScriptService]
public class Contacts : System.Web.Services.WebService {

public Contacts () {

    //Uncomment the following line if using designed components 
    //InitializeComponent(); 
}

[WebMethod]
public string HelloWorld() {
    return "Hello World";
}
public List<GetContacts> FetchContactList(string Name)
{
    var Receipent = new GetContacts();
    var ContactDetail = Receipent.FetchContacts()
    .Where(m => m.Name.ToLower().StartsWith(Name.ToLower()));

    return ContactDetail.ToList();
}
}
[WebService(命名空间=”http://tempuri.org/")]
[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
//要允许使用ASP.NET AJAX从脚本调用此Web服务,请取消注释以下行。
[System.Web.Script.Services.ScriptService]
公共类联系人:System.Web.Services.WebService{
公众接触(){
//如果使用设计的组件,请取消注释以下行
//初始化组件();
}
[网络方法]
公共字符串HelloWorld(){
返回“你好世界”;
}
公共列表获取联系人列表(字符串名称)
{
var Receipent=new GetContacts();
var ContactDetail=Receipent.FetchContacts()
.Where(m=>m.Name.ToLower().StartsWith(Name.ToLower());
返回ContactDetail.ToList();
}
}
Default.aspx页面的代码

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<%--<script src="jQuery.js" type="text/javascript"></script>--%>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript"  src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js"></script>
<script type="text/javascript">
    $(function () {
        $(".tb").autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: "Contacts.asmx/FetchContactList",
                    data: "{ 'Name': '" + request.term + "' }",
                    dataType: "json",
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    dataFilter: function (data) { return data; },
                    success: function (data) {
                        response($.map(data.d, function (item) {
                            return {
                                value: item.Name
                            }
                        }))
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        alert(textStatus);
                    }
                });
            },
            minLength: 2
        });
    });
</script>
</head>
<body>
<form id="form1" runat="server">
<table width="100%">
    <tr>
        <td>
            Number</td>
        <td>
            <asp:TextBox ID="txtNumber" runat="server" class="tb"></asp:TextBox>

            </td>
        <td>
            &nbsp;</td>
        <td>
            &nbsp;</td>
        <td>
            &nbsp;</td>
    </tr>
    <tr>
        <td>
            Message</td>
        <td>
            <asp:TextBox ID="txtMsg" runat="server" TextMode="MultiLine"></asp:TextBox></td>
        <td>
            &nbsp;</td>
        <td>
            &nbsp;</td>
        <td>
            &nbsp;</td>
    </tr>
    <tr>
        <td>
            &nbsp;</td>
        <td>
            <asp:Button ID="btnSend" runat="server" Text="Send" onclick="btnSend_Click" /></td>
        <td>
            &nbsp;</td>
        <td>
            &nbsp;</td>
        <td>
            &nbsp;</td>
    </tr>
</table>
</form>
</body>
</html>

$(函数(){
$(“.tb”).autocomplete({
来源:功能(请求、响应){
$.ajax({
url:“Contacts.asmx/FetchContactList”,
数据:“{'Name':'”+request.term+“}”,
数据类型:“json”,
类型:“POST”,
contentType:“应用程序/json;字符集=utf-8”,
dataFilter:函数(数据){返回数据;},
成功:功能(数据){
响应($.map)(数据.d,函数(项){
返回{
值:item.Name
}
}))
},
错误:函数(XMLHttpRequest、textStatus、errorshown){
警报(文本状态);
}
});
},
最小长度:2
});
});
数
消息

请告诉我哪里出错。

将[WebMethod]属性添加到您的FetchContactList

您是否实现了这些属性

[System.Web.Services.WebMethod]

[System.Web.Script.Services.ScriptMethod]

完整参考请参见此

1,错误是什么?2,连接到W3WP.exe以调试本地运行的服务。@Kiru..它只显示“error”bt,而不显示错误内容。。我是web服务新手,所以不知道如何调试web服务。我在VisualStudio的web服务方法中保留了断点,但没有遇到该点。好的,我认为它看起来像Javascript错误。您必须调试并找出成功传递的数据的值。要调试jquery,请在代码中添加调试器语句,并在浏览器中启用javascript调试。@Kiru。当我在文本框中写东西时,它错误地显示“未定义”。我应该怎么做..?我需要创建/添加对我的web服务的引用,还是可以像普通类一样直接使用它?