jQuery排序和MVC停止工作

时间:2010-12-21 02:51:21

标签: jquery asp.net-mvc jquery-ui-sortable

当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();
        }

它工作得很好,但现在它似乎引用了另一个类Token。任何想法发生了什么或从哪里开始寻找?

2 个答案:

答案 0 :(得分:0)

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();
}

答案 1 :(得分:0)

只需将以下内容添加到global.asax Application_Start方法

即可
ModelMetadataProviders.Current = new DataAnnotationsModelMetadataProvider();

有关详情,请参阅Scott的博客: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