MVC3 ActionResult не перезагружает страницу, если клиент уже на ней - PullRequest
0 голосов
/ 21 ноября 2011
public ActionResult DeleteCategory(int id)
{
     CategoryManager manager = new CategoryManager();
     manager.DeleteCategory(id);
     TempData["IsDeleted"] = true;
     return RedirectToAction("CategoriesList");
}

 public ActionResult CategoriesList()
 {
     List<CategoryModel> model = new CategoryManager().GetAll();
     return View(model);
 }

 public void DeleteCategory(int categoryId)
 {
     using (AsoEntities context = new AsoEntities())
     {
         var categoryToDelete = (from c in context.Categories 
            where c.Id == categoryId
            select c).SingleOrDefault();
         if (categoryToDelete == null)
            return;

         context.Categories.DeleteObject(categoryToDelete);
         context.SaveChanges();
     }
 }

Javascript

$(document).ready(function () {    
    // Dialog
    $('.delete-link').click(function () {
        deleteLinkObj = $(this); //for future use
        $('#delete-dialog').dialog('open');
        return false; // prevents the default behaviour
    });

    $('#delete-dialog').dialog({
        autoOpen: false, width: 400, resizable: false, modal: true, //Dialog options
        buttons: {
            "Da": function () {
                $.post(deleteLinkObj[0].href, function (data) { //Post to action
                    if (data == '<%= Boolean.TrueString %>') {
                        deleteLinkObj.closest("tr").hide('fast'); //Hide Row
                        //(optional) Display Confirmation
                    }
                    else {
                        //(optional) Display Error
                    }
                });
                $(this).dialog("close");
            },
            "Ne": function () {
                $(this).dialog("close");
            }
        }
    });
});

Когда я удаляю статью, меня возвращают в список категорий; но страница не перезагружается, если я уже нахожусь в списке категорий. Как я могу сделать так, чтобы страница была перезагружена и данные были обновлены?

Edit:

Если я удаляю Javascript, он начинает работать. Где проблема в Javscript?

1 Ответ

2 голосов
/ 21 ноября 2011

Вы используете jquery для асинхронного удаления элемента, что будет означать, что страница не перезагружается.

В вашем коде есть такая строка: if (data == '<% = Boolean.TrueString%>') {но в методе на стороне сервера не возвращает логическое значение, поэтому приведенная выше строка никогда не будет равной true, поэтомуdeleteLinkObj.closest ( "тр") скрыть ( 'быстрый').// Hide Row никогда не вызывается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...