我正在尝试使用自定义模型发布帖子:
public class CallbackPriorityItemModel
{
public int userID { get; set; }
public int order { get; set; }
public string name { get; set; }
}
但是我无法让它发挥作用。我必须遵循以下代码:
function updateUserCallbackList() {
var cbList = [];
$(".callbackListItem").each(function () {
cbList.push({
Name: this.id,
Order: $('li').index(this.parentElement),
UserId: _userID
});
});
var args = {
CbList: cbList,
UserID: _userID
};
$.post(SiteUtil.urlContent('/api/AccountApi/UpdateCallbackPriorityList?' + $.param(args)));
}
调用此方法:
[HttpPost]
public void UpdateCallbackPriorityList(CallbackPriorityItemModel[] cbList, int userID)
我已经确认cbList在javascript中不为null,但是当它到达UpdateCalbackPriorityList时它总是为null,尽管userID不为null。我试图使用其他方法:
var url = SiteUtil.urlContent('/api/AccountApi/UpdateCallbackPriorityList/');
$.ajax({
url: url,
type: 'POST',
data: JSON.stringify(args),
dataType: 'json',
contentType: 'application/json; charset=utf-8'
});
但是我收到错误,说浏览器找不到UpdateCallbackPriorityList。 建议?
答案 0 :(得分:0)
尝试类似:
$.ajax({
url: SiteUtil.urlContent('/api/AccountApi/UpdateCallbackPriorityList'),
type: 'POST',
data: args,
contentType: 'application/json; charset=utf-8'
});
较新版本的jQuery会自动序列化传递给$ .ajax数据参数的对象。
除此之外,你的JS变量名中的大小写与C#不匹配 - 我不确定ASP是否相应地纠正了这一点,尝试更改JS以匹配C#并看看是否有帮助也不会有害。