2012-07-15 79 views
0

獲取一些url參數後,我想稍後在我的c#代碼中使用它們,但格式略有不同。c#如何請求URL參數並更改字符

的「http://example/myexample.aspx與會者= john.sam &音箱= fred.will.tony.amy.al」

我能夠得到的值作爲一個字符串在其現有的使用格式: C#代碼

public string myattendees() 
{ 
    string attendees; 
    attendees = Request.QueryString["attendees"]; 
    return attendees; 
} 
public string myspeakers() 
{ 
    string speakers; 
    speakers = Request.QueryString["speakers"]; 
    return speakers; 
} 

myattendees返回

john.sam

和(與沒有引號週期分隔) myspeakers回報(分離與沒有引號週期)

fred.will.tony.amy.al

但我想將其轉換所以它會返回一個字符串,像這樣用逗號分隔和單引號值。

'約翰', 'SAM'

'弗雷德', '將', '託尼', '艾米', '人'

什麼將是最好的方式在C#中做到這一點?使用NameValueCollection?

*爲清晰起見編輯問題的細節。 *編輯 - 修正了拼寫錯誤。

+0

如果你知道他們總是點分隔的,只是'split'他們成陣列。 – 2012-07-15 14:06:48

回答

3

此代碼會給你通過分割點上取得一個字符串數組:

string[] speakers; 
if (Request.QueryString["speakers"] == null) 
    speakers = new string[0]; 
else 
    speakers = Request.QueryString["speakers"].Split('.'); 
+0

小改進:更好地引入Request.QueryString [「揚聲器」]的變量,因此您不會計算兩次。 – 2012-07-15 14:15:20

+0

對不起,我對C#不是很有經驗。我試圖ekolis的答案,但它不適合我。我可能沒有完全正確的語法? ekolis的代碼應該在公共字符串myspeakers(){string []揚聲器的大括號內;如果... – James00 2012-07-15 19:45:06

+0

是的,它應該在myspeakers()方法的大括號中。你遇到了什麼錯誤?您需要將myspeakers()的返回類型從字符串更改爲字符串[] ... – ekolis 2012-07-15 20:44:05

1

試試這個:

public class MyClassGetQueryString 
{ 

    private const string Attendees = "attendees"; 
    private const string Speakers = "speakers"; 

    public string MyAttendees() 
    { 
     return Request.QueryString[MyClassGetQueryString.Attendees] ?? string.Empty; 
    } 

    public string MySpeakers() 
    { 
     return Request.QueryString[MyClassGetQueryString.Speakers] ?? string.Empty; 
    } 

    public string[] MyAttendeesParts() 
    { 
     return this.MyAttendees().Split('.'); 
    } 

    public string[] MySpeakersParts() 
    { 
     return this.MySpeakers().Split('.'); 
    } 
} 
+0

我也試過,但是我得到的錯誤方法必須有返回類型。 – James00 2012-07-15 19:55:45

+0

哪裏?用什麼方法? – 2012-07-16 12:43:59

+0

我得到「方法必須有返回類型」 – James00 2012-07-17 06:02:34