ASP .NET MVC i Jquery UI

0

Witam
Chcę wywołać partial view w dialogu z jQuery UI. Pojawia się dialog, ale na przykład przy akcji dodawania danych do bazy czasami wybierane jest złe id. Podobnie zdarza się również w przypadku usuwania. Klikam na usuń np. dla postu nr 1, a wyświetlają się dane postu 2, który po naciśnięciu ok jest usuwany.

Kod

$('#open_dialog_post').dialog({
                title: "Usuń post",
                autoOpen: false,
                width: 800,
                resizable: false,
                modal: true
            });

$('.del_post').click(function () {
                $('#open_dialog_post').load("@Url.Action("Delete", "Post", new  { id = item.ID })", function () {
                    $('#open_dialog_post').dialog('open');
                });
                return false;
            });

Jak można poprawić ten kod, aby poprawnie "dobierał" id postu?

1

Moim zdaniem niepoprawny jest selektor '.del_post' ponieważ pobiera on wszystkie elementy o klasie del_post. Najrosądniejsze rozwiązanie jakie mi przychodzi do głowy to:
w atrybucie data (np. data-del-href) umieścić

<a href="3" data-del-href="@Url.Action("Delete", "Post", new  { id = item.ID })">Usuń</a>

A potem możesz odwołać się do tego atrybutu w taki sposób:

$('.del_post').click(function () {
                var clickedBtn = this;
                $('#open_dialog_post').load(clickedBtn.data('del-href'), function () {
                    $('#open_dialog_post').dialog('open');
                });
                return false;
            });

Na koniec dodam że kod jest pisany z głowy i nie jest testowany więc ma prawo zawierać błędy.

0

Teraz też mi się udało na coś takiego wpaść. Próbuje to zrobić za pomocą .closest(), ale nie mogę się dostać do przycisku, bo podaje zły kontekst.

0

Twój sposób działa. Dzięki za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1