Как передать список выбранных объектов из JavaScript в действии в MVC? - PullRequest
0 голосов
/ 14 мая 2011

У меня есть большая таблица данных, которая содержит флажок для каждой строки.Мне нужно либо передать все элементы, выбранные в виде списка с разделителями-запятыми, либо, что еще лучше, строго типизированный IList в контроллер.Каков наилучший способ сделать это?Я знаю, что могу передать строку без проблем, но как мне узнать, какие флажки выбраны?

Вот как выглядит статический код:

@using (@Html.BeginForm("RemoveItems", "ResultList", new { IDList = "1,2,3,4" }, FormMethod.Post))
{
    <input type="submit" value="Remove Items" name="RemoveItems" />
}

Ответы [ 2 ]

0 голосов
/ 14 мая 2011

У меня был сайт, возможно, похожий на ваш.

У меня была таблица с флажками в каждой строке.

То, что я сделал, было:

var firstPriorityArray = new Array();

        $("Input:checkbox[name=FirstPriority]:checked").each(function () {

            firstPriorityArray[firstPriorityArray.length] = $(this).val();
            console.log(fp.toString());
        });

console.log предназначен только для того, чтобы увидеть, что произошло и как это выглядит:)

Впоследствии я использовал JSON.Stringify () и объект и отправил его обратно на другой сайт ASPX с AJAX, например:

var o = new Object();
    o.primary = firstPriorityArray;

var json = JSON.stringify(o);
        $.ajax({
            url: 'getMeAJAX.aspx',
            type: 'POST',
            data: "json=" + json,
            success: function (response) {
                //On success
            },
            error: function (xhr, ajaxoptions, thrownError) {
                alert(thrownError);
            }
        });

Может быть, вы можете использовать это или вдохновиться. Я не могу сказать, является ли это «идеальным» и наиболее «MVC» способом сделать это, но это работает;)

// Gerner

0 голосов
/ 14 мая 2011

Вы можете сделать это, используя jQuery.

    $.ajax({
        url: "/MyAction/Array",
        data: JSON.stringify({ model: input }),
        type: "POST",
        contentType: "application/json"
    });

Здесь «input» - это ваш массив, «model» - имя параметра действия.Убедитесь, что вы указали contentType как application / json.

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