从 JavaScript WebMethod 访问单独的 C# 文件
Accessing Separate C# file from JavaScript WebMethod
如果我在默认 aspx.cs 文件中有 c# [WebMethod] 代码,我可以让它工作,但我无法让它为单独的 c# 文件工作,我得到一个 "webmethods undefined"。
我将脚本管理器设置为 EnablePageMehods = true
。
我的分身class长这样
public class TestClass
{
[WebMethod]
public static string Test()
{
string a = "Hello Worlds";
return a;
}
}
JS 看起来像这样
function testwebmethod() {
PageMethods.Test(onSucceed, onError);
}
function onSucceed(result) {
alert(result);
}
function onError(result) {
}
我已经尝试从 System.Web.UI.Page
中继承,因为它在默认的 cs 文件中工作,但仍然没有 avil。
提前致谢
WebMethod 属性只有在两个位置指定时才能从客户端调用方法:ASPX 代码隐藏文件和 ASMX Web 服务代码隐藏文件。任何其他地方,它没有任何影响。
在 ASPX 页面上,它意味着定义仅适用于该给定页面的 Web 可访问方法。在 ASMX 网络服务上,它意味着将类似的功能聚集在一起,并使所有页面都可以访问它。 (从概念上讲,一旦您定义了端点,只要您知道 URL 的位置,您就可以从客户端做任何您想做的事……)
如果您想为所有 AJAX 服务器端调用创建单独的 class,请将 ASMX Web 服务添加到您的项目并调用它。您可以查看此 SO post: Calling ASMX Web Service from Javascript 了解更多信息。
从 System.Web.UI.Page 继承不起作用的原因是因为在 ASP.NET 了解如何将 Web 请求路由到它。
如果我在默认 aspx.cs 文件中有 c# [WebMethod] 代码,我可以让它工作,但我无法让它为单独的 c# 文件工作,我得到一个 "webmethods undefined"。
我将脚本管理器设置为 EnablePageMehods = true
。
我的分身class长这样
public class TestClass
{
[WebMethod]
public static string Test()
{
string a = "Hello Worlds";
return a;
}
}
JS 看起来像这样
function testwebmethod() {
PageMethods.Test(onSucceed, onError);
}
function onSucceed(result) {
alert(result);
}
function onError(result) {
}
我已经尝试从 System.Web.UI.Page
中继承,因为它在默认的 cs 文件中工作,但仍然没有 avil。
提前致谢
WebMethod 属性只有在两个位置指定时才能从客户端调用方法:ASPX 代码隐藏文件和 ASMX Web 服务代码隐藏文件。任何其他地方,它没有任何影响。
在 ASPX 页面上,它意味着定义仅适用于该给定页面的 Web 可访问方法。在 ASMX 网络服务上,它意味着将类似的功能聚集在一起,并使所有页面都可以访问它。 (从概念上讲,一旦您定义了端点,只要您知道 URL 的位置,您就可以从客户端做任何您想做的事……)
如果您想为所有 AJAX 服务器端调用创建单独的 class,请将 ASMX Web 服务添加到您的项目并调用它。您可以查看此 SO post: Calling ASMX Web Service from Javascript 了解更多信息。
从 System.Web.UI.Page 继承不起作用的原因是因为在 ASP.NET 了解如何将 Web 请求路由到它。