繁体   English   中英

如何从类函数获取Ajax响应?

[英]How to Get Ajax response from a class function?

我上课:-

 namespace CodeFiles
 {
 public class GetDetails
 {

      public List<string> AllItems(string value)
      {
            string[] items =  { "hassaan", "samina", "noureen", "hafsa", "wajeeh", "farnaz", "basim", "shahnaz" };
            var lst = new List<string>();
            return (from o in items
                    where o.Contains(value)
                    select o).ToList();
      } 
   }
}

我只想从ajax响应中使用AllItem方法。 但是想知道如何应用它。

我的ajax电话就像:-

$(document).ready(function () {
    $('#<%= txtName.ClientID%>').autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "CodeFiles.GetDetails.cs/AllItems",
                data: "{'value': '" + request.term + "' }",
                type: "POST",
                dataType: "json",
                contentType: "application/json;charset=utf-8",
                success: function (result) {
                    response(result.d);
                },
                error: function (result) {
                    alert('There is a problem processing your request');
                }
            });
        }
    })
});

我在url: "CodeFiles.GetDetails.cs/AllItems"收到错误url: "CodeFiles.GetDetails.cs/AllItems"导致错误。 如何实现这一点。

您不能将类名称作为url传递。 您只需要传递ajax响应文件的url。

这是一个Web应用程序吧?

如果是这样,请制作一个Web表单,或者如果已经存在,则只需要创建一个用[WebMethod]装饰的静态方法,然后在该方法的内部初始化该类并调用方法AllItems。

简单的例子:

在Default.aspx上:

[WebMethod]
public static string Hello(string name)
{
    return name;
}

然后在您的js中:

function Hello() {
    $.ajax({
        type: "POST",
        url: "Default.aspx/Hello",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (result) {
            response(result.d);
        },
        error: function (result) {
            alert('There is a problem processing your request');
        }
    });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM