2015-04-14 2 views
1

Я не уверен, почему мой успех ajax не запускается/не вызван. Вызывается мой контроллер и выполняется код. Я ничего не возвращаю, поэтому мой метод недействителен! Нужно ли мне что-то возвращать (ActionResult/JSonResult/etc), чтобы добиться успеха?JQuery Ajax Успех не запускается

Вот мой код контроллера.

public void DeleteEvent(string eventId) 
{ 
    diaryEventService.DeleteDiaryEvent(eventId); 
} 

Вот мой вызов ajax.

$.ajax({ 
 
    url: '/ManageSpaces/DeleteEvent', 
 
    dataType: 'json', 
 
    data: { 
 
    eventId: eventId, 
 
    }, 
 
    success: function() { 
 
    //var obj = JSON.parse(doc); 
 

 
    var myCalendar = $('#fullcalendar'); 
 
    myCalendar.fullCalendar(); 
 
    myCalendar.fullCalendar('removeEvents', eventId); 
 
    $("#eventDetails").collapse('toggle'); 
 
    } 
 
});

+0

Вы должны выполнить ошибку и проверить, что там происходит, – Carorus

+2

Он должен возвращать 'JsonResult' –

ответ

1

Да, вам нужно вернуть JsonResult:

[HttpPost] 
public JsonResult DeleteEvent(string eventId) 
{ 
    diaryEventService.DeleteDiaryEvent(eventId); 
    return Json("{status:"OK"}"); 
} 

Поскольку вы меняете фонами данные, установите его в POST:

$.ajax({ 
    url: '/ManageSpaces/DeleteEvent', 
    method: 'POST', 
    dataType: 'json', 
    data: { 
    eventId: eventId, 
    }, 
    success: function(response) { 
    if(response.status=="OK"){ 
    var myCalendar = $('#fullcalendar'); 
    myCalendar.fullCalendar(); 
    myCalendar.fullCalendar('removeEvents', eventId); 
    $("#eventDetails").collapse('toggle'); 
    }else{ 
     console.log("Error occured") 
    } 
    } 
}); 
+1

Если они что-то удаляют, то DELETE будет лучшим Http-глаголом. – krillgar

+0

Правая крилла. но delete, put методы отправят запрос OPTIONS вместе с фактическим запросом. Таким образом, POST тоже прекрасен. – vinayakj

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