C# (.NET 2.0) のレガシー プロジェクトを使用しています。このプロジェクトには、2 つの検証グループがあります。1 つはカスタム ログイン コントロール用で、もう 1 つはユーザーがニュースレターに送信するためのものです。私が遭遇した問題は、ユーザーがニュースレターを購読するために送信すると、ユーザーがログインしようとしたときにのみトリガーされる必要がある page_prerender() メソッドでカスタム コードがトリガーされることです。
必要に応じてカスタム コードを無視できるように、2 つのグループのどちらがポストバックで使用されているかを認識するソリューションを探していました。私の考えは、2 つの検証グループのどちらが検証に使用されているかを確認することでした。残念ながら、グーグルで無駄な数時間を費やした後、検証時にどの検証グループが使用されているかを実際に知る方法を知る方法を見つけることができませんでした。調べる方法はありますか?
<asp:Button ID="btn_newsletter"
runat="server"
Text="Verzend"
ValidationGroup="newsLetter"
meta:resourcekey="bnt_newsletter"
OnClick="handleNewsLetter"
CssClass="roundedButtonBig"
/>
<asp:Button ID="LoginButton"
runat="server"
CommandName="Login"
Text="Inloggen"
ValidationGroup="lgnUser"
meta:resourcekey="LoginButtonResource1"
CssClass="roundedButtonBig"
/>
次のコードは、LoginButton が押されたときにのみトリガーする必要があり、Pre_render() で実行する必要があります。または、代わりに正しい ValidationGroup を渡します (ここでは null が渡されます)。
protected void Page_PreRender(object sender, EventArgs e)
{
//Register custom ValdiationErrorService added errors to JavaScript so they can be added into the popup.
ValidationErrorService.RegisterServerValidationMessageScript(Page, null);
}