Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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/1/asp.net/34.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
Jquery 在ASP.NET MVC中使用带自动完成的处理程序_Jquery_Asp.net_Ajax_Asp.net Mvc_Jquery Ui Autocomplete - Fatal编程技术网

Jquery 在ASP.NET MVC中使用带自动完成的处理程序

Jquery 在ASP.NET MVC中使用带自动完成的处理程序,jquery,asp.net,ajax,asp.net-mvc,jquery-ui-autocomplete,Jquery,Asp.net,Ajax,Asp.net Mvc,Jquery Ui Autocomplete,是否可以在触发自动完成功能时更改路径,或更改.cshtml文件(视图)中的路径语法 举个例子,下面是我的代码: 自动完成的文本框: <form class="form-inline" id="formFilters" runat="server"> <div> <input type="text" id="visitor" placeholder="pick a visitor" class="form-control" style="mar

是否可以在触发自动完成功能时更改路径,或更改
.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>

$(文档).ready(函数(){
$(“#访问者”)。自动完成({
来源:“VisitorHandler.ashx”
});
});
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));
        }    
    }
}
命名空间访问者\u管理
{
公共类VisitorHandler:IHttpHandler
{
公共void ProcessRequest(HttpContext上下文)
{
列表访问者名称=新列表();
字符串cs=ConfigurationManager.ConnectionString[“VisitorSQLCommand”]。ConnectionString;
使用(SqlConnection con=newsqlconnection(cs))
{
//设置查询和参数
SqlDataReader dr=cmd.ExecuteReader();
while(dr.Read())
{
//写内部列表
}
}
JavaScriptSerializer js=新的JavaScriptSerializer();
Write(js.Serialize(VisitorNames));
}    
}
}

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

而不是相对URL到源使用根相对URL(/VisitorHandler.ashx):


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

喜欢它,当/丢失时……关于你的便条,我如何使用控制器?单独的一个或当前一个中的一个方法?@MarkoPetričević我认为对于小项目,可以在生成视图的同一控制器中创建一个动作方法。定义操作的合理路由并
返回Json(访问者名称)。在视图中使用
Url.Action(…)
获取自动完成资源的Url。
$(document).ready(function () {
    $('#visitor').autocomplete({
        source: '/VisitorHandler.ashx'
    });
});