title: Pass array to Controller Action via AJAX
body: <p>I saw similar questions, but none helps me.
  I have the simplest code:</p>
  
  <pre><code>    public JsonResult JsonGetStatesInfo(object[] instructions)
      {
          if (Request.IsAjaxRequest())
          {
  
              return Json(String.Empty);
          }
          else
              throw new NoAjaxRequestException();
      }
  </code></pre>
  
  <p>and client side:</p>
  
  <pre><code>            var instructions = [];
              instructions.push('abc');
              instructions.push('ddd');
              instructions.push('assdbc');
              var inst = JSON.stringify(instructions);
              $.ajax({
                  cache: false,
                  data: { 'instructions': inst },
                  traditional: true,
                  dataType: 'json',
                  url: '/State/JsonGetStatesInfo',
                  type: 'post',
                  success: function (resp) {
                  },
                  error: function (data) {
                      alert(data.error);
                  }
              });
  </code></pre>
  
  <p>On client side I tried with JSON.stringify, without JSON.stringify, with traditional: true, without traditional: true</p>
  
  <p>On server side I tried as parameter : object[], object, List&lt; object >, List&lt; string >, IEnumerable&lt; string > etc</p>
  
  <p>Nothing worked! How to do it correctly?</p>
  
  <p><strong>SOLVED</strong>:
  My problem was trivial - one from real values of array had HTML Tag. Just need add [ValidateInput(false)] to action method</p>