2011-09-10 24 views
1

私はダッシュボードページで作業しています。ユーザーは複数の選択肢からプロパティを選択し、選択したプロパティに基づいて最終的なURLとレンダリングを生成します。エレガントなカスタマイズされたURLを構築する方法

ので、私は、10種類のpropritesを持っているとしましょう:

ShowImage=true/false 
ShowWindow=true/false 
ShowAdmin = true/false 
ShowAccounts = true/false 
............. 
.......... 
........... 

私のURLはHOSTNAMEの面で変化がないので、producitonを打つされる静的になります。ので、ここで

は私が来アップするものである:

const string URL = "http://www.hostname.com/cont.aspx?id={0}&link={1}&link={2}........"; 
string.Format(URL, "123","aaa123", "123"............); 

が、上記の解決策の問題にかかわらず、それは私が選択するかどうか私に長いURLを生成したりしません、ということです...

最適化されたソリューション?

+0

を。 – Joe

+0

真のパラメータを送信するだけで、空白/偽/デフォルト値を追加しないでください。 – David

+0

ビットフィールドを使用できます。すべてのブール値オプションを1つのフィールドに送信して送信します。あなたはそれを処理する余分なロジックを追加する必要があります。 –

答えて

1

あなたはStringBuilderクラス(System.Text名前空間)使用することができます:あなたはURLのために2083文字の合計を持っているので、私はそれが本当にすべてのことの長さであるとは思わない

StringBuilder sbUrl = new StringBuilder(); 

sbUrl.AppendFormat("http://www.hostname.com/cont.aspx?id={0}", 123); 

if (ShowImage) { 
    sbUrl.AppendFormat("&link1={0}", "aaa123"); 
} 

if (ShowWindow) {  
    sbUrl.AppendFormat("&link2={0}", "aaa123"); 
} 

string url = sbUrl.ToString(); 
関連する問題