У меня есть простая таблица с записями, и каждый из них имеет BTN с атрибутом данных ид для запуска диалога подтверждения:Подтверждение Диалог с Bootstrap/JQuery/ASP.MVC
@foreach (var dog in Model)
{
<tr>
<td>@dog.Name</td>
<td>@dog.Age</td>
<td><a href="#" data-id="@dog.Id" class="btn btn-danger deleteBtn">Delete</a></td>
</tr>
}
После нажатия кнопки удаления BTN , этот код работает:
$('.deleteBtn').on('click', function() {
$.ajax({
url: '@Url.Action("DeleteConfirm", "Home")',
data: {
id : $(this).attr('data-id')
},
success: function(data)
{
$('#myModal').empty().html(data).modal('show');
}
});
});
Как вы можете видеть, его запрос Ajax к моему действию в HomeController. Она возвращает PartialView, который загружается в мой Bootstrap диалог:
<div class="modal fade" id="myModal">
</div>
После показа диалога, пользователь может нажать, чтобы подтвердить удаление строки с помощью кнопки с классом saveBtn. То, что происходит после того, как я нажимаю его:
$('#myModal').on('click', '.saveBtn', function() {
var numer = $(this).attr('data-id');
$.ajax({
url: '@Url.Action("DeleteDog", "Home")',
type: 'POST',
dataType: 'JSON',
data: {
id: numer
},
success: function (data)
{
if (data = 'true')
$('a[data-id=' + numer + ']').closest('tr').remove();
}
});
});
Так как вы можете видеть, что есть другой Ajax POST (на этот раз) запрос, чтобы удалить строку.
Итак, вот мой вопрос. Является ли этот подход хорошей практикой? Я не уверен, потому что для удаления строки мне нужно отправить 2 запроса ajax (чтобы загрузить диалог подтверждения и удалить после подтверждения). Может ли кто-нибудь испытать комментарий разработчика к этому коду и сказать, делает ли он это хорошим или плохим? Буду признателен.
ли 'data' возвращается вашим первым' AJAX() 'называют уникальной для "собак" будучи удалено, и это то, что вы могли бы загрузить раньше времени? Я не могу представить себе ситуацию, когда требуется первый вызов ajax, если пользователь не знает, что он удаляет. Можете ли вы объяснить, что такое «данные» в этой ситуации? – wahwahwah
Вы имеете в виду атрибут data-id? Каждая собака получила уникальный идентификатор, поэтому я отправил его в свой первый ajax в действие DeleteConfirm, чтобы он возвращал PartialView, который получил сообщение «Вы действительно хотите удалить собаку с id = value». – CSharpBeginner