值不会出现在自动填充文本框中

时间:2015-06-23 15:40:13

标签: c# jquery asp.net jquery-ui autocomplete

我有ashx

string name = context.Request["term"] ?? "";
            string cs = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
            List<MobilineContact> mbContacts = new List<MobilineContact>();
            MobilineContact mbc = new MobilineContact();
            using (SqlConnection con = new SqlConnection(cs))
            {
                SqlCommand cmd = new SqlCommand("spGetContactNames", con);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter()
                {
                    ParameterName = "@name",
                    Value = name
                });
                con.Open();
                SqlDataReader rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                    mbc.Id = int.Parse(rdr["Id"].ToString());
                    mbc.Name = rdr["ContactName"].ToString();
                    mbc.Mobile = rdr["ContactNumber"].ToString();
                    mbContacts.Add(mbc);
                }
            }
            JavaScriptSerializer js = new JavaScriptSerializer();
            context.Response.Write(js.Serialize(mbContacts));

当我在这里提出要求时

  

http://localhost:43969/ContactsHandler.ashx?term=t

它返回我期望的

  

[{ “ID”:1, “名称”: “测试”, “移动”: “555555555”}]

在调试中,所有内容都是确定 在我的aspx页面中,我写了这个:

$(document).ready(function () {
   $('.toTxt').autocomplete({
     source: 'ContactsHandler.ashx'
   });
});

这是我的文本框:

<asp:TextBox class="form-control toTxt" ID="To" placeholder="To" runat="server"></asp:TextBox>

为什么我的值未在文本框中显示为自动填充?我引用了jquery,jquery.ui.js和jquery.ui.css。控制台

中没有错误

1 个答案:

答案 0 :(得分:0)

这可能与context.Request["term"]有关 - 我猜这是空的还是什么?

您正在使用查询字符串参数来发送term的值,如果我没记错的话,context.Request会读取正文 - 而不是查询字符串。试试这个:

context.Request.QueryString["term"]获取term的值。