Нулевые идентификаторы массива от ajax до actionresult в asp.net mvc - PullRequest
1 голос
/ 28 ноября 2011

Моя функция Ajax:

function changeMultipleItemStatus(status) {
    var ids= getAllCheckedIds();
    var comment = $('#txtComment').val();
    $.ajax({
        type: 'POST',
        url: "../Admin/ChangeMultipleItemStatus",
        cache: false,
        data: {
            ids: ids,
            status: status,
            comment: comment
        },
        traditional: true,
        success: function (html) {
            ...
        }
    }); }

ActionResult

[HttpPost]
public ActionResult ChangeMultipleItemStatus(int[] ids, string status, string comment)
{
  ....
}

function getAllCheckedIds() {
    var data = [];

    $("table input:checked").each(function () {
        data.push($(this).val());
    });

    return data;
}

Моя проблема - ActionResult Changemultiplestatus Идентификаторы первой переменной всегда нулевые. когда я предупреждаю dataToSend, то кажется, что okey (true, 1,2) -> 1,2 - это id элементов. Но в действии контроллера идентификаторы всегда равны нулю.

Есть комментарии?

Ответы [ 2 ]

1 голос
/ 28 ноября 2011

Я бы определенно не изменил бы значения в строках.У Фила Хаака есть отличная статья о связывании моделей со списками - при попытке сделать это есть хитрость, поэтому я бы посоветовал прочитать его статью: http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

1 голос
/ 28 ноября 2011

Можете ли вы изменить int[] идентификаторы на строковые идентификаторы на веб-сервисе.Это все еще нуль?Также попробуйте [ [System.Web.Services.WebMethod]] вместо [HttpPost]

...