2012-07-15 78 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