0

このコードを使用してチェックされた日付を取得しましたが、int[]値を取得していません。どこが間違っている。

ページを表示:

        function displayCheckedPersons() {
        var $checkedRecords = new Array();
        var j;
        j = 0;
           var nodes = $("#PersonTree").jstree("get_checked",null,true); 
           $.each(nodes, function (i, element) {
               if ($(element).attr("ifPerson") == "Y") {
                   $checkedRecords[j] = $(element).attr("id");
                   j = j + 1;
               };
           });

       if ($checkedRecords.length < 1) {
            alert('Please Select Persons first.');
            return;
        }


        $('#result').load('<%= Url.Action("DisplayCheckedPersons", "Scheduling") %>',$checkedRecords);
    }
</script>

アクションコード:

        public ActionResult DisplayCheckedPersons(int[] checkedRecords)
    {
        AttendMSDataContext db = new AttendMSDataContext();
        checkedRecords = checkedRecords ?? new int[] { };
        return PartialView("CheckedPersons", db.Persons.Where(o => checkedRecords.Contains(o.id)));
    }

daiによる編集:次のように、$ajaxを使用して配列を投稿しました。

 $.ajax({
            type: "POST",
            url: "<%= Url.Action("DisplayCheckedPersons", "Scheduling") %>",
            data: { checkedRecords: checkedPersons },
            dataType: "html",
            success: function (request) { $("#result").html(request); },
            traditional: true
        });
4

1 に答える 1

0

データは次のように使用する必要があります。

$('#result').load('<%= Url.Action("DisplayCheckedPersons", "Scheduling") %>', $checkedRecords);

になる:

$('#result').load('<%= Url.Action("DisplayCheckedPersons", "Scheduling") %>', { checkedRecords: $checkedRecords });

構文は次のとおりです。

{ expectedName: JavascriptVariable, expectedName2: JavascriptVariable2 }

編集:

これは、コンテンツをロードする方法を示すAjaxの例です。上記の.loadの例は、何が問題になっているのかわからない場合に機能するはずですが、ここで説明します。

$.ajax({ 
    type: "POST",
    url: "<%= Url.Action("DisplayCheckedPersons", "Scheduling") %>",
    data: { checkedRecords: checkedPersons },
    dataType: "json",
    success: function(data) {
            $("#YourDiv").html(data);
        }
    });
于 2011-08-17T20:43:10.100 に答える