I need to store an array of string in a HiddenField in my webform with asp.net. Can anybody please tell me how I can achieve that? Thanks
Probably a few methods would work.
1) Serialize the String[] in JSON
This would be fairly easy in .NET using the JavaScriptSerializer
class, and avoid issues with delimiter characters. Something like:
String[] myValues = new String[] { "Red", "Blue", "Green" };
string json = new JavaScriptSerializer().Serialize(myValues);
2) Come up with a delimiter that never appears in the strings
Delimit each string with a character such as |||
that will never appear in the string. You can use String.Join()
to build this string. Something like:
String[] myValues = new String[] { "Red", "Blue", "Green" };
string str = String.Join("|||", myValues);
And then rebuild it like:
myValues = str.Split(new string[] { "|||" }, StringSplitOptions.RemoveEmptyEntries);
This might be the best option if you can trust your input, such as a series of numbers of pre-defined choices. Otherwise, you'd probably want to check your input strings to make sure they don't contain this delimiter if you wanted to be very safe. You could potentially use HttpUtility.HtmlEncode()
to escape each string first.