在 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 种不同的技术。
是否可以在触发自动完成功能时更改路径或更改 .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 种不同的技术。