今、私はいくつかの研究をしました。ページ上の WebMethod への ajax 呼び出しから取得したデータを、いつでも元に戻せる場所に保存する必要があります。
最初は、ViewState が最適なオプションになると考えていました。残念ながら、非静的メソッドと同じ方法で参照することはできません。ページのインスタンスを作成してViewStateに保存しても、メソッドの最後でインスタンス化が解除され、保存したデータが破壊されると思います。
このデータは、他の WebMethods で行っているデータベース呼び出しのために必要です。
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"];
}