0

我需要使用静态 WebMethod 在用户所在的活动(当前)asp 页面中调用非静态方法。我怎样才能做到这一点?

这两种方法都在 ASP 页的 cs 文件中。

    public void NormalMethod()
    {
        txtFindingNum.Text = "Ajax is da bomb";
    }

    [WebMethod]
    public static void MyWebMethod()
    {
        // This is the part I need help with...
        DoIt();
    }
4

2 回答 2

5

你不能这样做。这甚至没有意义。

页面的实例方法是关于页面的特定实例。当你在静态 web 方法(页面方法)中时,没有页面的实例。

如果您可以从 web 方法中调用实例方法,那意味着实例方法应该是静态方法。您可以添加static到该方法并使其仍然有效吗?如果不是,那么它取决于页面的特定实例,并且在没有实例的情况下您根本无法调用它。


请注意,页面实例仅在它所服务的 HTTP 请求期间存在。当您的客户端代码调用 Web 服务时,该 HTTP 请求已经结束,并且页面实例已经消失。

于 2013-08-07T08:08:00.557 回答
2

你不能这样做,但是txtFindingNum.Text字段是输入的,你可以在客户端更改它(回发后它也保留服务器中的更改),用js或jq,像这样:

$("#<%=txtFindingNum.ClientID%>").val("Ajax is da bomb");
于 2013-08-07T08:13:59.847 回答