我的网站上有越来越多的AJAX电话。
我的AJAX代码如下所示:
function setupNameAutocomplete(id) {
$(id).autocomplete({
source: function(request, response) {
$.ajax({
url: "selectName.aspx/getNameAutocomplete",
....
最初,上面的javascript代码用在网页上,用户输入要搜索的人的姓名;我决定要对名称进行自动填充。
然而,当我继续开发网站时,我决定我希望能够在许多页面上使用相同的“名称”自动完成功能。逻辑上,将我的javascript代码放在外部.js文件中而不是在每个页面上重复它都是有意义的。
我还希望将处理AJAX的.net代码放在自己的文件中。 .net自动完成代码如下所示:
[WebMethod]
public static IEnumerable<string> getNameAutocomplete(string text)
{
IEnumerable<string> values = lookupNamesThatStartWith(text);
return values;
}
当然,看起来这些代码属于外部.asmx或者.ashx文件,但除非我从selectName.aspx调用上面的代码,否则我无法使用我的javascript代码。
如何在单独的代码文件中获取我的AJAX .net代码?
答案 0 :(得分:0)
如果我理解你的问题,一个可行的解决方案就是拥有一个服务继承的基类来实现通用的WebMethod
。
那,或者你可以通过将自动完成查找的逻辑抽象到一个类中,并且每次都根据需要从WebMethod
调用它来“非常干净”。