2016-02-01 3 views
2

У меня есть контроллер OData с действием, как:ODataController Post метод «неопределенный»

[HttpPost] 
[ODataRoute("PostUpdate")] 
public async Task<string> PostUpdate(HttpRequestMessage eventsToUpdate) 
{ 

//Do something 
} 

Это, как я называю контроллер через AJAX вызов:

var updateDataArray = []; 
for(i=0;i<5;i++) 
{ 
    //Build the data 
    var updatedT = { 
    "Id" : (Id)?Id:0, 
    "Desc" : CalculatedDesc 
    } 
    updateDataArray.push(updatedT); 
} 

Url = "Api/Odata/PostUpdate" 

$.ajax({ 
url :Url, 
type:"POST", 
data:updateDataArray , 
dataType : 'json', 
success : function(result) { 

} 
}); 

Проблема в том, когда элемент управления находится в методе действия, и когда я положил eventsToUpdate.Content.ReadAsStringAsync().Result в ближайшее окно, я получаю вывод как: "Undefined :&undefined" В чем проблема?

ответ

1

Проблема с параметром PostUpdate метод. В ajax для вызова метода с данными необходимо сопоставить имя параметра с типом данных. Сначала создайте объект json с именем eventsToUpdate с типом HttpRequestMessage и вызывайте так:

$.ajax({ 
url :Url, 
type:"POST", 
data: eventsToUpdate, 
dataType : 'json', 
success : function(result) { 

} 
}); 
Смежные вопросы