2012-10-28 2 views
0

Я разрабатываю веб-приложение с MVC 3 и хочу вернуть сообщение пользователю после успешного удаления элемента.Возврат результата JSON после удаления элемента

метод MyWallController выглядит следующим образом:

[HttpPost] 
public ActionResult DeleteAlbum(Guid albumId) 
{ 
    try 
    { 
     this.albumService.DeleteAlbum(albumId); 
     return Json(new { success = true, msg = "Album successfully deleted" }, JsonRequestBehavior.AllowGet); 
    } 
    catch (FPSException e) 
    { 
     return Json(new { success = false, msg = e.Message }); 
    } 
    catch (Exception) 
    { 
     throw new HttpException(500, "Error while deleting album"); 
    } 
} 

Ссылка:

<a class="open-DeleteAlbumDialog" href="http://localhost:2941/MyWall/DeleteAlbum?albumId=0f49b1ad-8ec1-4fca-b8e2-28bdbf47824e">Delete</a> 

JavaScript: не

$(function() { 
    $(document).on('click', '.open-DeleteAlbumDialog', function() { 
    var answer = confirm('Are you sure you want to delete this album?') 
    if (answer) { 
     $.post(this.href, function (data) { 
      if (data.success) { 
       // do something 
      } else { 
       // do something else 
      } 
     }); 
    } 
    else return false; 
}); 

Однако функция, определенная внутри поста не называют и то, что я получаю «ресурс не может быть найден». Но элемент удален успешно.

Все виды помощи приветствуются.

ответ

2

Ваша ссылка все еще работает. Вам необходимо: preventDefault:

$(function() { 
    $(document).on('click', '.open-DeleteAlbumDialog', function (e) { 
    e.preventDefault(); 
    var answer = confirm('Are you sure you want to delete this album?') 
    if (answer) { 
     $.post(this.href, function (data) { 
      if (data.success) { 
       // do something 
      } else { 
       // do something else 
      } 
     }); 
    } 
}); 
Смежные вопросы