我有一个调用ASP.NET处理程序来完成自动完成功能的web部件。Web部件调用Web处理程序
ASHX File
<%@ WebHandler Language="C#" Class="MyService.MyAutoComplete" CodeBehind="MyAutoComplete.ashx.cs" %>
代码文件
namespace MyService
{
/// <summary>
/// Summary description for MyAutoComplete
/// </summary>
public class MyAutoComplete : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
var searchTerm = context.Request.QueryString["term"].ToString();
context.Response.Clear();
context.Response.ContentType = "application/json";
var search = GetList();
JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
string json = jsSerializer.Serialize(search);
context.Response.Write(json);
context.Response.End();
}
}
}
背后,这是我的JQuery调用
$(function() {
$("#<%= txtSearchInput.ClientID %>").autocomplete({
source: "/_Layouts/My Service/MyAutoComplete.ashx",
minLength: 2,
select: function (event, ui) {
$(this).val(ui.item.value);
}
});
});
“我的服务” 为布局的SharePoint文件夹中的WebPart项目中。
当我做呼叫救援人员到场的JQuery它引发以下错误 “无法创建类型‘MyService.MyAutoComplete’”
任何帮助表示赞赏。
您是否添加了对该dll文件的引用?如果不添加并重新生成应用程序。 – coder
@coder处理程序是webpart项目的一部分。所以我认为我们不需要任何参考。 – Yass
另外我想你可以有一个调用你的处理程序的小问题。你给jQuery自动完成的相对URL“/ _Layouts/My Service/MyAutoComplete.ashx”,这就是为什么它会在网站收集的根网站下调用它,所以你可以在权限,列表查询等方面有问题。当然我无法确定,也许这是你设计的一部分。但看看SharePoint js api SP.Utilities.Utility.getLayoutsPageUrl([yourHandlerUrl]) http://msdn.microsoft.com/en-us/library/ee659418.aspx 它会根据网站集中的当前网站生成url 。 –