JQuery Sort и MVC перестали работать - PullRequest
0 голосов
/ 21 декабря 2010

Я получаю следующую ошибку, когда JQuery Sort вызывает мое действие сортировки:

Словарь параметров содержит недопустимую запись для параметра 'DonationIDS' для метода 'System.Web.Mvc.EmptyResult SortDonations (System.Collections.Generic.List 1[System.Int32])' in 'Vol.Web.Areas.ActivityArea.Controllers.DonationController'. The dictionary contains a value of type 'System.Collections.Generic.List 1 [Vol.Models.Token] ', но для параметра требуется значение типа' System.Collections.Generic.List`1 [System.Int32] '.
Имя параметра: параметры

jQuery:

$("#dlist").sortable({
        handle: '.sorthandle',
        update: function () {
            var order = $('#dlist').sortable('toArray');
            $.ajax({
                url: '/activity/donation/sortdonations',

                data: { DonationIDS: order },
                type: 'POST',
                traditional: true
            });
        }
    });

Значения сообщения:

Parametersapplication/x-www-form-urlencoded
DonationIDS 1
DonationIDS 8
Source
DonationIDS=1&DonationIDS=8

MVC Действие:

 public EmptyResult SortDonations(List<int> DonationIDS)
        {


            int order = 0;
            foreach (int i in DonationIDS)
            {
                donationRepository.UpdateSortOrder(i, order);
                order++;
            }


            return new EmptyResult();
        }

Работало отлично, но теперь похоже на ссылкудругой класс, токен. Есть идеи, что происходит или с чего начать?

Ответы [ 2 ]

0 голосов
/ 23 июля 2011

Просто добавьте следующее в метод global.asax Application_Start

ModelMetadataProviders.Current = new DataAnnotationsModelMetadataProvider();

Подробнее об этом см. Блог Скотта: http://weblogs.asp.net/scottgu/archive/2010/12/14/update-on-asp-net-mvc-3-rc2-and-a-workaround-for-a-bug-in-it.aspx

0 голосов
/ 21 декабря 2010

enter code here Я изменил действие, чтобы использовать строку, и это решило проблему.

     [HttpPost]
        public EmptyResult SortDonations(string[] donationorder)


{

    int order = 0; 
    foreach (var i in donationorder)
    {
        donationRepository.UpdateSortOrder(Convert.ToInt32(i), order);
        order++;
    }


    return new EmptyResult();
}
...