2011-09-10 62 views
1

我正在儀表板頁面上,用戶將有多個選擇屬性,並根據選定的屬性,它將生成最終的URL和呈現。如何構建一個優雅的自定義URL

所以我們說,我有10個不同的proprites:

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

我的網址將成爲將被打的加工生產時的靜態所以在HOSTNAME方面沒有變化。

所以這裏是我先到了:

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

,但是與上述解決方案的問題在於,無論它會產生了很長的URL是否我選擇或不...

任何優化的解決方案?

+0

你總共有2,083個字符的URL,所以我不認爲這是真正的所有長。 – Joe

+0

只需發送True參數,不要添加空/ false /默認值。 – David

+0

你可以使用一個位域。你會發送一個字段中的所有布爾選項。你必須添加額外的邏輯來處理它。 –

回答

1

您可以使用StringBuilder類(System.Text命名空間):

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();