Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.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
Asp.net 是否将自动完成方法放在单独的web文件中?_Asp.net_Jquery_Ajax_Autocomplete - Fatal编程技术网

Asp.net 是否将自动完成方法放在单独的web文件中?

Asp.net 是否将自动完成方法放在单独的web文件中?,asp.net,jquery,ajax,autocomplete,Asp.net,Jquery,Ajax,Autocomplete,我有一个web站点,它有越来越多的AJAX调用 我的AJAX代码如下所示: function setupNameAutocomplete(id) { $(id).autocomplete({ source: function(request, response) { $.ajax({ url: "selectName.aspx/getNameAutocomplete", .... [WebMethod

我有一个web站点,它有越来越多的AJAX调用

我的AJAX代码如下所示:

function setupNameAutocomplete(id) {
    $(id).autocomplete({
        source: function(request, response) {
            $.ajax({
                url: "selectName.aspx/getNameAutocomplete",
    ....
   [WebMethod]
    public static IEnumerable<string> getNameAutocomplete(string text)
    {
        IEnumerable<string> values = lookupNamesThatStartWith(text);
        return values;
    }
最初,上面的javascript代码用于一个网页,其中用户键入要搜索的人的姓名;我决定在名字上自动完成

然而,随着我继续开发这个网站,我决定能够在许多页面上使用相同的“名称”自动完成。从逻辑上讲,将我的javascript代码放在一个外部的.js文件中而不是在每个页面上重复它是有意义的

我希望将处理AJAX的.net代码也放在自己的文件中,这也是有道理的。.net自动完成代码如下所示:

function setupNameAutocomplete(id) {
    $(id).autocomplete({
        source: function(request, response) {
            $.ajax({
                url: "selectName.aspx/getNameAutocomplete",
    ....
   [WebMethod]
    public static IEnumerable<string> getNameAutocomplete(string text)
    {
        IEnumerable<string> values = lookupNamesThatStartWith(text);
        return values;
    }
[WebMethod]
公共静态IEnumerable getNameAutocomplete(字符串文本)
{
IEnumerable values=从(文本)开始的查找名称;
返回值;
}
当然,这些代码似乎属于外部的.asmx或.ashx文件,但除非我从selectName.aspx调用上述代码,否则我无法让javascript代码正常工作


如何在单独的代码文件中获取AJAX.net代码?

如果我正确理解了您的问题,一个可行的解决方案是拥有一个基类,您的服务从该基类继承,该基类将实现通用的
WebMethod


或者,您可以将自动完成查找的逻辑抽象到一个类中,并根据需要每次从您的
WebMethod
s调用它,从而使它“非常干净”。

如果我正确理解您的问题,一个可行的解决方案是让您的服务继承一个基类,该基类将实现通用的
WebMethod


或者,您可以将自动完成查找的逻辑抽象到一个类中,并根据需要每次从
WebMethod
s调用它,从而使它“非常干净”。

请参见这个问题,因为自动完成来自插件或jQuery UI版本,这可能有助于了解哪个版本。看到这个问题,由于插件或jQuery UI版本的自动完成功能,了解哪个版本可能会有所帮助。