在 ASP.NET MVC 中使用具有自动完成功能的处理程序

Using handler with autocomplete in ASP.NET MVC

是否可以在触发自动完成功能时更改路径或更改 .cshtml 文件(视图)中的路径语法?

举个例子,这是我的代码:

自动完成的文本框:

<form class="form-inline" id="formFilters" runat="server">
    <div>
        <input type="text" id="visitor" placeholder="pick a visitor" class="form-control" style="margin-right:20px;" />           
    </div>

自动完成脚本:

 <script>
  $(document).ready(function () {
     $('#visitor').autocomplete({
         source: 'VisitorHandler.ashx'
     });
  });
</script>

VisitorHandler.ashx.cs :

namespace Visitor_Management
{
    public class VisitorHandler : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            List<string> VisitorNames = new List<string>();
            string cs = ConfigurationManager.ConnectionStrings["VisitorSQLCommand"].ConnectionString;

            using (SqlConnection con = new SqlConnection(cs))
            {
                //setting up query and parameters                  

                SqlDataReader dr = cmd.ExecuteReader();

                while (dr.Read())
                {
                    //writing inside List
                }
            }

            JavaScriptSerializer js = new JavaScriptSerializer();
            context.Response.Write(js.Serialize(VisitorNames));
        }    
    }
}

我的问题是:如何更改 .autocomplete 上的路径或如何将 VisitorHandler.ashx 放入带有路由的当前路径中,是否有任何其他方法以不同的方式执行相同的逻辑?

而不是相对 URL 源使用 root-relative URL (/VisitorHandler.ashx):

$(document).ready(function () {
    $('#visitor').autocomplete({
        source: '/VisitorHandler.ashx'
    });
});

注意:考虑在 MVC 世界中用控制器替换处理程序。您正在混合使用 2 种不同的技术。