现在我做了一些研究。我需要将我从页面上的 WebMethod 的 ajax 调用中检索到的一些数据存储到某个地方,以便我可以随时再次将其拉回。
起初我认为 ViewState 将是最好的选择。不幸的是,您不能像在非静态方法中那样引用它。即使我创建页面实例以将其存储在 ViewState 中,我相信它会在方法结束时取消实例化,从而破坏我保存的任何数据。
我需要这些数据用于在其他 WebMethod 中进行的数据库调用。
我的 aspx 页面的 C# 代码隐藏中的基本方法如下所示:
[WebMethod]
[ScriptMethod]
public static string populateModels(string[] makeIds)
{
}
因此,例如,我需要保存选定的品牌以供将来的数据库调用使用。因为我的大部分盒子在过滤和从数据库中提取方面都是级联的。
更新:
此代码用于在静态 WebMethods 中的 SessionState 中检索和存储数据。
[WebMethod(EnableSession = true)]
[ScriptMethod]
public static string populateYears(string[] modelIds)
{
HttpContext.Current.Session["SelectedModels"] = modelIds;
string[] makeids = (string[])HttpContext.Current.Session["SelectedMakes"];
}