7

I am passing a javascript array via Request.QueryString["cityID"].ToString(), but it shows me an error of "invalid arguments":

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

The method declaration looks like:

public string addOfficeOnlyDiffrent(string[] cityID, string selectTxtOfficeAr) { }
Daniel
  • 10,864
  • 22
  • 84
  • 115
SHAKEEL HUSSAIN
  • 139
  • 2
  • 4
  • 13

3 Answers3

6

Your method addOfficeOnlyDiffrent is expecting a string array arguement in cityID whereas you are passing a single string type object to your method in call. I believe your cityID is a single string so you can remove the array from the method declaration. In your method call.

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

the above represents a single string, not a string array.

If your query string contains a string array, then values are probably in string representation, separated by some character, for example ,. To pass that string to the method, you can call string.Split to split the string to get an array.

EDIT: From your comment, that your query string contains:

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

You can do the following.

string str = Request.QueryString["cityID"].ToString();
string[] array = str.Trim('(',')').Split(',');
blObj.addOfficeOnlyDiffrent(array,
                            Request.QueryString["selectTxtOfficeAr"].ToString());
Habib
  • 219,104
  • 29
  • 407
  • 436
2

If your query string parameter value looks like: "123456,654311,987654"

string[] ids = Request.QueryString["cityID"]
    .Split( new[] {","}, StringSplitOptions.RemoveEmptyEntries );
Tim M.
  • 53,671
  • 14
  • 120
  • 163
0

try this it's so simple.

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

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

You get string like this "123456,654311,987654" in city. You get array in cityID.

Ajay
  • 6,418
  • 18
  • 79
  • 130