Как загрузить частичное представление с массивом int, используйте jquery в asp.net mvc - PullRequest
0 голосов
/ 18 августа 2011

Я использую этот код, чтобы получить проверенную дату, но он не получает значение 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
        });

1 Ответ

0 голосов
/ 18 августа 2011

Данные должны использоваться следующим образом:

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

становится:

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

Синтаксис:

{ expectedName: JavascriptVariable, expectedName2: JavascriptVariable2 }

Edit:

Вот пример Ajax, показывающий, как загрузить ваш контент. Пример .load из abouve должен работать, я не уверен, что с тобой что-то не так, но вот, пожалуйста:

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