Some tricks to remember, which we do not always do:

  1. Do not iterate over a collection, checking when you are at element after the first, and add a seperator - just use String.Join("SEPERATOR",IEnumerableCollection). Remember that you can pre-/postpend a char or string, if you wish to wrap each element in whatever you feel like - off course, you can do the same in JS
  2. When trying to use ViewState, it is not enough to enable it in web.config: remember, if it is enabled in webconfig, but disabled on page, you will have no ViewState. Again, if ViewState is disabled on page, but enabled in control, you will have no ViewState - enable on page AND control, to have ViewState on control.

Just a couple of thoughts, might be expanded...