当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。任何想法发生了什么或从哪里开始寻找?
答案 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