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'
});
});