通过查询字符串传递数组

时间:2013-01-30 04:45:19

标签: c# asp.net

我通过Request.QueryString["cityID"].ToString()传递了一个javascript数组,但是它显示了错误#34;无效的参数":

blObj.addOfficeOnlyDiffrent(Request.QueryString["cityID"].ToString(),
                            Request.QueryString["selectTxtOfficeAr"].ToString());

方法声明如下:

public string addOfficeOnlyDiffrent(string[] cityID, string selectTxtOfficeAr) { }

3 个答案:

答案 0 :(得分:6)

您的方法addOfficeOnlyDiffrent期待cityID中的字符串数组争论,而您正在将单个string类型对象传递给调用中的方法。我相信你的cityID是一个字符串,所以你可以从方法声明中删除数组。在你的方法调用中。

Request.QueryString["cityID"].ToString()

以上表示单个字符串,而不是字符串数组。

如果您的查询字符串包含字符串数组,则值可能是字符串表示形式,以某些字符分隔,例如,。要将该字符串传递给方法,可以调用string.Split来拆分字符串以获取数组。

编辑: 根据您的评论,您的查询字符串包含:

Request.QueryString["cityID"].ToString() (123456,654311,987654) 

您可以执行以下操作。

string str = Request.QueryString["cityID"].ToString();
string[] array = str.Trim('(',')').Split(',');
blObj.addOfficeOnlyDiffrent(array,
                            Request.QueryString["selectTxtOfficeAr"].ToString());

答案 1 :(得分:2)

如果您的查询字符串参数值如下所示:“123456,654311,987654”

string[] ids = Request.QueryString["cityID"]
    .Split( new[] {","}, StringSplitOptions.RemoveEmptyEntries );

答案 2 :(得分:0)

试试这个简单

 string city = Request.QueryString["cityID"];

 string[] cityID =city.Split(new char[] {','},StringSplitOptions.RemoveEmptyEntries);

你在城市中得到这样的字符串“123456,654311,987654”。你在cityID中得到数组。