Как собрать массив в javascript и получить его в c # mvc controller - PullRequest
0 голосов
/ 04 января 2019

Можно построить массив в jquery / javascript, чтобы отправить его на мой контроллер c #?

Я получаю список сотрудников из нескольких выбранных, я могу предупредить их следующим образом:

    <div class="demo">
        <select style="display:none" id="liste" multiple="" placeholder="Select">
            @foreach (var employe in ViewBag.Employes)
            {
            <option value="@employe.ID_Employe">@employe.Name</option>
            }
        </select>
    </div>

    <a class="btn btn-default" id="check" href="#">Suivant</a>

Мой сценарий:

        $('#check').on('click', function () {
            $("#liste").find("option:selected").each(function () { alert($(this).text()); });
        });

Я отправляю данные вот так:

        $.ajax({
            type: 'POST',
            dataType: 'json',
            url: '/MyAjaxRoute',
            data: { arraytosend: arraybuildInJS },
            success: function (response) {
                if (response.success) {
                    alert('yes');
                }
        },
  • Можете ли вы объяснить мне, как сделать массив в js и получить его в контроллере ac # mvc?

Ответы [ 3 ]

0 голосов
/ 04 января 2019

Сначала создайте в контроллере действие как:

public JsonResult SaveArrayData(List<string> myData)
{
   if(myData.Count == 0) return Json(new {success = false});

   //do something with myData
   return Json(new {success = true});
}

Затем в своем коде js вы можете сделать следующее:

var array = [];
$('#check').on('click', function () {

$("#liste").find("option:selected").each(function () {
    array.push($(this).text)
});

$.ajax({
     type: 'POST',
     dataType: 'json',
     url: '@Url.Action("SaveArrayData", "MyController")',
     data: { myData: array },
     success: function (response) {
       if (response.success) {
          array = [];//empty the array you can also use array.length = 0
          alert('yes');
       }          
     }
   });
});
0 голосов
/ 04 января 2019

Спасибо за ваши ответы, я могу успешно отправить свои данные, но я не могу найти способ их проанализировать в моем контроллере c #

public ActionResult GetAjaxSession(string searchequipe)
    {
        if (searchequipe != null)
        {
            var equipe_decode = HttpUtility.UrlDecode(searchequipe);

// how to parse my json variable : searchequipe ? 

            return Json(new { success = true }, JsonRequestBehavior.AllowGet);
        }

        return null;


    }
0 голосов
/ 04 января 2019

Я думаю, push - это то, что вы ищете.

var arraybuildInJS = [];
$('#check').on('click', function () {
            $("#liste").find("option:selected").each(function () { arraybuildInJS.push($(this).text()); });
        });

Помните, что вы должны ожидать Enumerable of string в вашем контроллере.Поскольку вы не пишете код, попробуйте сопоставить объекты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...