从JavaScript WebMethod中访问单独的c#文件
本文关键字:文件 单独 访问 JavaScript WebMethod | 更新日期: 2023-09-27 17:50:44
如果我在默认的aspx.cs文件中有c# [WebMethod]代码,我可以让它工作,但我不能让它为单独的c#文件工作,我得到一个"webmethods未定义"。
我将脚本管理器设置为EnablePageMehods = true
。
我单独的类是这样的
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文件中工作,但这仍然没有害处。
Thanks in advance
WebMethod属性只允许一个方法在两个位置被指定时可以从客户端调用:ASPX代码文件和ASMX web服务代码文件。其他任何地方都不会有任何影响。
在ASPX页面上,它意味着定义只适用于给定页面的web可访问方法。在ASMX web服务中,它意味着将类似的功能聚集在一起,并使其可被所有页面访问。(从概念上讲,一旦定义了端点,只要知道url在哪里,就可以从客户端执行任何操作。)
如果您想为所有AJAX服务器端调用创建一个单独的类,请向您的项目添加一个ASMX Web服务并调用它。你可以看看这篇文章:从Javascript调用ASMX Web服务获得更多信息。
从System.Web.UI.Page继承不工作的原因是因为你需要在ASP. js之前有一个ASPX声明性页面指向给定的page派生类。. NET知道如何将web请求路由到它。