是否可以从页面的静态方法中检索用户控件

本文关键字:静态方法 检索 用户 控件 是否 | 更新日期: 2023-09-27 18:13:19

我正在尝试使用ajax/jquery从客户端调用用户控件中的方法。我的ajax看起来像这样:

function starClick(starIndex) {
    $.ajax({
        type: "POST",
        url: "ItemPage.aspx/postRatingProxy",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            document.getElementById("testAjax").innerHTML = msg.d;
        }
    });
}

我的page方法看起来像:

[WebMethod]
public static string postRatingProxy()
{
    return .......postRating();
}

那么用户控制方法看起来像:

public static string postRating()
{
    return "git er done";
}

我看到有人建议这个方法。虽然我非常失落,如何检索我的UserControl方法从页面方法时,它的静态。是否有可能从静态方法中检索UserControl,或者我只是遇到了死胡同?

是否可以从页面的静态方法中检索用户控件

是否可以从静态方法或我是不是走到死胡同了?

不,这不可能。一个ASP。. NET PageMethod是静态的,不允许您访问任何用户控件。原因很简单。当你用jQuery做一个AJAX请求时,没有ViewState被发送到服务器,因此用户控制的概念几乎没有意义。如果您需要访问Page Method中的某些值,请将此值作为AJAX请求中的参数发送:

data: JSON.stringify({ someParameter: 'some value you could take from wherevr you want' }),