【问题标题】:Accessing Webmethods from Class Library从类库访问 Web 方法
【发布时间】:2018-12-10 03:25:37
【问题描述】:

我在我的一个类库中定义了一个 WebMethod 方法,我想在 aspx 页面中访问它。

我有一个类库项目,我在其中创建了一个继承 System.UI.Page 的类,这个新类有一个名为 ("GetUsername") 的 webmethod 函数。现在我在我的 web 项目中引用了这个库,并且在 default.aspx.cs 中我继承了新类(我在上面的类库中创建的那个)。现在在 aspx 中,我编写了一个 ajax 函数来访问数据库中的数据,但是它会为带有 404 的 ajax url 参数抛出错误。

这是我的整个代码结构:

1。类库:

[ScriptService]
    public class WebMethodLibrary : Page
    {
        [WebMethod]
        public static object GetCurrentUserName()
        {
            Alistar.Data.AlistarDataContext db = new Alistar.Data.AlistarDataContext();
            Guid gUser = new Guid("8FEF8333-F1AE-4E9E-95F9-07316CE39F73");
            var user = db.Users.Find(gUser);
            return new { Username = user.Username };
        }
    }

2。后面的网页代码:

public partial class _default : WebMethodLibrary
    {
    }

3。带有 Ajax 调用的 aspx 页面:

$.ajax({
            url: 'GetCurrentUserName',
            dataType: 'json',
            type: 'post',
            contentType: 'application/json',
            data: {},
            processData: false,
            success: function (data, textStatus, jQxhr) {
                alert(JSON.stringify(data));
            },
            error: function (jqXhr, textStatus, errorThrown) {
                console.log(errorThrown);
            }
        });

谁能指出可能是什么问题?

【问题讨论】:

    标签: c# asp.net web-services asp.net-ajax


    【解决方案1】:

    我认为你必须在 url 中的方法名称之前指定你的 aspx 页面的名称你已经提到你的页面的名称是 default.aspx 如果它在 root 所以调用将类似于下面或者你必须在名称前面页面名称之前的目录。

    $.ajax({
                url: '~/default.aspx/GetCurrentUserName',
                dataType: 'json',
                type: 'post',
                contentType: 'application/json',
                data: {},
                processData: false,
                success: function (data, textStatus, jQxhr) {
                    alert(JSON.stringify(data));
                },
                error: function (jqXhr, textStatus, errorThrown) {
                    console.log(errorThrown);
                }
            });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-09
      • 2021-11-12
      • 2021-10-30
      • 2011-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多