C# 从类库访问Webmethods
我在我的一个类库中定义了一个WebMethod方法,我想在aspx页面中访问它 我有一个类库项目,我在其中创建了一个继承System.UI.Page的类,这个新类有一个名为(“GetUsername”)的webmethod函数。现在我已经在我的web项目中引用了这个库,并且在default.aspx.cs中我继承了一个新类(我在上面的类库中创建的那个)。现在在aspx中,我编写了一个ajax函数来访问数据库中的数据,但是它在404中为ajaxurl参数抛出了错误 以下是我的整个代码结构: 一,。类库:C# 从类库访问Webmethods,c#,asp.net,web-services,asp.net-ajax,C#,Asp.net,Web Services,Asp.net Ajax,我在我的一个类库中定义了一个WebMethod方法,我想在aspx页面中访问它 我有一个类库项目,我在其中创建了一个继承System.UI.Page的类,这个新类有一个名为(“GetUsername”)的webmethod函数。现在我已经在我的web项目中引用了这个库,并且在default.aspx.cs中我继承了一个新类(我在上面的类库中创建的那个)。现在在aspx中,我编写了一个ajax函数来访问数据库中的数据,但是它在404中为ajaxurl参数抛出了错误 以下是我的整个代码结构: 一,。
[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 };
}
}
二,。网页代码隐藏:
public partial class _default : WebMethodLibrary
{
}
三,。带有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);
}
});
有人能指出问题出在哪里吗?我认为您必须在url中的方法名称之前指定您的aspx页面名称,您已经提到您的页面名称是默认的。aspx如果在根目录中,那么调用将类似于下面的调用,或者您必须在页面名称之前预先指定您的目录名称
$.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);
}
});