【问题标题】:To execute the AJAX call to ASP.NET WEb Application执行对 ASP.NET WEB 应用程序的 AJAX 调用
【发布时间】:2013-11-25 07:52:14
【问题描述】:

下面是我在 ASP.NET Web 应用程序代码中的代码

public string GetData(string name)
    {
        WCF_Web_Service.Service1 client = new WCF_Web_Service.Service1();
        string Name=client.GetData(name);
        return Name;
    }

在这里,我已经使用了我的简单 WCF 服务,应该将配置单元输出为 Hello,

下面是我的jquery代码

function asyncServerCall(name) {
        jQuery.ajax({
            url: 'WebForm1.aspx/GetData',
            type: "POST",
            data: "{'name':" + name + "}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                alert(data.d);
            }
        });
    }

我在按钮的点击事件中调用了这个函数,如下所示

<input type="button" value="click me" onclick="asyncServerCall(1);" />,

我想通过 AJAX 调用从 WCF 服务调用此方法,当我单击按钮时出现以下错误

Failed to load resource: the server responded with a status of 500 (Internal Server Error) 

我是使用 WCF 服务并通过 AJAx 调用来调用其方法的新手,任何帮助将不胜感激......

【问题讨论】:

  • 代码隐藏函数GetData尝试调用WCF或者调用没有到达后面的代码时出现异常?后面的代码里放断点了吗?
  • 我进入断点并检查,我可以看到 WCF 服务被调用并且我在字符串名称中获取值但我无法对 jquery 进行 AJAX 调用...
  • 你的意思是回复?当WCF返回数据给后台代码或者后台代码返回数据到客户端时出现问题?
  • 当代码隐藏向客户端返回数据时出现问题..它没有向客户端返回数据..
  • 像这样在ajax调用中添加错误方法error: function (result) { alert("Error"); }

标签: c# jquery asp.net ajax wcf


【解决方案1】:

您的GetData 方法需要是静态网络方法,因此将其更改为这个。

[System.Web.Services.WebMethod]
public static string GetData(string name)
{
    WCF_Web_Service.Service1 client = new WCF_Web_Service.Service1();
    string Name=client.GetData(name);
    return Name;
}

Here's a good article on the why's 但本质上是因为:

这正是它们必须标记为静态的原因。它们不能与 Page 类的实例属性和方法交互,因为页面方法调用不会创建 Page 或其任何控件的实例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-25
    • 1970-01-01
    • 2019-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    相关资源
    最近更新 更多