2014-11-12 2 views
0

Я пытаюсь сделать пост с пользовательской моделью:

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, но это всегда нуль, когда она попадает UpdateCalbackPriorityList, хотя идент не ноль. Я пытался использовать другие методы:

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

Я думаю, что ваш метод должен быть «статичным» для вызова AJAX. Даже при этом я не уверен, что MVC может создать сложный объект из запроса http-запроса, не имея каких-либо конкретных инструкций. – PoweredByOrange

ответ

0

Try что-то вроде:

$.ajax({ 
    url: SiteUtil.urlContent('/api/AccountApi/UpdateCallbackPriorityList'), 
    type: 'POST', 
    data: args, 
    contentType: 'application/json; charset=utf-8' 
}); 

Новые версии JQuery автоматически сериализации объектов передается в $ .ajax Params данных.

Помимо этого, заглавные буквы в именах переменных JS не совпадают с C#. Я не уверен, что ASP правильно исправляет это, не помешает попытаться изменить JS для соответствия C# и посмотреть, помогает ли это ,

Смежные вопросы