質問
URL に「showall」クエリ文字列パラメータがあります。このパラメータは、「すべて表示/ページを表示」ボタンをクリックすると動的に追加されます。
ユーザーが「すべて表示/ページを表示」ボタンをクリックしたことに応じて、「showall」クエリ文字列パラメータ値を切り替える機能が必要です。
ネストされた「if」をいくつか実行しています。 string.Replace()
URLにあるのですが、もっと良い方法はありますか?
すべての操作はサーバー上で行われます。
追記 Toran さん、良い提案ですが、他の問題があるため、URL パラメータを使用する必要があります。
解決
トランの答えを詳しく説明すると、次のようになります。
使用:
<asp:HiddenField ID="ShowAll" Value="False" runat="server" />
状態を切り替えるには:
protected void ToggleState(object sender, EventArgs e)
{
//parse string as boolean, invert, and convert back to string
ShowAll.Value = (!Boolean.Parse(ShowAll.Value)).ToString();
}
他のヒント
もう 1 つの汚い代替手段は、URL を操作する代わりに、非表示の入力を使用してオン/オフを設定することです。
デフォルト値または true を使用して値を URL にハードコードするだけで (あまり良くないことはわかっていますが)、手間がかかりすぎますか?
booleanVar = !booleanVar;
ページが読み込まれるたびに実行しますか?
少なくとも、これにより URL を操作するために if をネストする必要がなくなりました。
質問からはよくわかりませんが、ここではないでしょうか? HTTPハンドラー 助けに来ますか?この場合、ページをレンダリングする前にオブジェクトの変数変更を処理すべきではないでしょうか?
所属していません StackOverflow