Как передать массив через в JQuery Ajax и как сделать это на стороне сервера? - PullRequest
0 голосов
/ 12 сентября 2011

У меня есть проблема, когда я должен передать список идентификаторов на сервер, чтобы удалить некоторых пользователей, но я должен сделать это с помощью JQuery Ajax. Но я не смог получить параметры на моей стороне сервера, кто-нибудь может помочь с этим, чтобы разобраться, пожалуйста?

То, что я сделал до сих пор, показано ниже

  var idList = new Array();
$(document).ready(function () {
    $('input:checkbox').click(function () {
        //set our checkedcount variable to 0
        var checkedCount = 0;
        //loop through and count the number of "checked" boxes
        $('.acceptUsers:checked').each(function () {
            //if a checked box was found, increase checkedCount by 1
            idList.push($(this).val());
            checkedCount++;
        });
    });
});
      $('#btnDelete').click(function () {
          url = 'Teacher/UpdateUserStatus/';
          var ids = idList.toString();
          $.ajax({
              type: "POST",
              url: url,
              data: { 'userIds': ids },
              contentType: "application/json; charset=utf-8",
              dataType: "html",
              success: function (data) {
                  alert('yeah');
                }
              }
          });
      });

То, что я сделал на моей стороне сервера, это

    [HttpPost]
    public JsonResult UpdateUserStatus(object userIds)
    {
        List<int> usersToDelete = new JavaScriptSerializer().ConvertToType<List<int>>(userIds);
        this.userService.DeleteUsers(usersToDelete);
        return Json(true, JsonRequestBehavior.AllowGet);
    }

Кто-нибудь может знать, почему мой метод на стороне сервера не вызывается?

1 Ответ

1 голос
/ 12 сентября 2011

Первое, что я заметил, это то, что внутри вашего кода есть еще одна фигурная скобка.Попробуйте следующее:

 $('#btnDelete').click(function () {
      url = 'Teacher/UpdateUserStatus/';
      var ids = idList.toString();
      $.ajax({
          type: "POST",
          url: url,
          data: { 'userIds': ids },
          contentType: "application/json; charset=utf-8",
          dataType: "html",
          success: function (data) {
              alert('yeah');
          }
      });
  });

Если это не работает, запустите сеанс отладки и установите точку останова на методе действия и посмотрите, ударили вы по серверу или нет.

Также посмотрите на следующую статью для примера вызовов JQuery Ajax на ASP.NET MVC 3:

http://www.tugberkugurlu.com/archive/working-with-jquery-ajax-api-on-asp-net-mvc-3-0-power-of-json-jquery-and-asp-net-mvc-partial-views

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