Как обновить вид после удаления записи в asp.net mvc - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть вид, внутри которого я сохраняю записи в базе данных и , показывая, что записи с переменной Viewbag на той же странице У меня есть кнопка удаления перед каждой записью для удалениязаписи, я хочу после удаления записи, представление должно быть обновлено, как добиться этого

Мой метод контроллера

   public ActionResult Delete(int id)
    {
        db.Delete<Logs>(id);
        return RedirectToAction("Index", new { id });
    }

Мой HTML и запрос

<button type="button" id="delete" data-id="@item.LogId" class="delete btn btn-default" style="background-color:transparent"><i class="fas fa-times h3" style="color:red;"></i></button>

        $('.delete').click(function () {
            var selectedid = $(this).data("id");
            $.post("@Url.Action("Delete", "Log")", { id: selectedid });

        });

1 Ответ

0 голосов
/ 19 декабря 2018

Первое, что вы должны знать: RedirectToAction не будет работать в вызове AJAX, вы должны передать URL для перенаправления с location.href следующим образом:

Действие контроллера

[HttpPost]
public ActionResult Delete(int id)
{
    db.Delete<Logs>(id);

    // other stuff

    string url = this.Url.Action("Index", "Log", new { id = id });

    return Json(url);
}

jQuery

$.post("@Url.Action("Delete", "Log")", { id: selectedid }, function (result) {
    window.location.href = result;
});

Или лучше создать частичное представление, содержащее все элементы, которые будут обновлены через AJAX, и затем передать его в часть success:

Действие контроллера

[HttpPost]
public ActionResult Delete(int id)
{
    db.Delete<Logs>(id);

    // other stuff

    return PartialView("PartialViewName");
}

jQuery

$.post("@Url.Action("Delete", "Log")", { id: selectedid }, function (result) {
    $('#targetElement').html(result);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...