чтобы выполнить удаление с использованием JavaScript и всплывающего окна, вам необходимо:
1) Создайте действие в контроллере, как показано ниже:
[HttpPost]
public void DeleteItem(int id)
Декорируя метод действия аннотацией [HttpPost], вы избегаете нежелательного поведения пользователя, набирающего URL / Home / Delete / 1, потому что только POST вызовет действие.
2) Если вы удаляете элемент, входящий в список элементов, вам необходимо привязать свои элементы в разделе Просмотр идентификатора, используя пользовательские атрибуты HTML5, например:
@for (int i = 0; i < Model.Items.Count; i++)
{
<a href="#" class="delete-button" data-id="@Model.Items[i].Id">Delete</a>
}
3) Используя jQuery, например, привязать к вашей кнопке (кнопкам) удаления на странице всплывающее окно при нажатии
$().ready(function () {
$(".delete-button").click(null, DeleteItem); //DeleteItem is the callback
return false;
});
Нам нужно указать обратный вызов, который будет обрабатывать нажатие кнопки удаления
4) Использование, например, диалогового компонента jQuery UI:
Создать HTML для всплывающего текста
<div id="dialog-confirm" style="display:none;" title="Confirm">
<p>
<span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>
Are you sure you want to proceed?
</p>
</div>
Обработайте нажатие кнопки удаления и привяжите диалог к HTML-тексту, чтобы всплывающее окно сообщало пользователю, что вы хотите
function confirmDeleteVersion() {
var recordToDelete = $(this).attr("data-id"); // now we need the data-id to retrieve the identifier for the item to delete
$("#dialog-confirm").dialog({
resizable: false,
height: 200,
modal: true,
buttons: {
"Delete": function () {
$(this).dialog("close");
$.post("/Home/Delete", { id : recordToDelete}, DeleteSuccessfull);
},
Cancel: function () {
$(this).dialog("close");
}
}
});
};
Итак, мы получаем идентификатор кнопки
var recordToDelete = $(this).attr("data-id");
где "this" - это элемент HTML, который вызвал событие, используя
В приведенной ниже строке фактически мы просим контроллер выполнить действие удаления, и мы используем идентификатор записи
$.post("/Home/Delete", { id : recordToDelete}, DeleteSuccessfull);
5) Поскольку сообщение jQuery асинхронно, нам необходим обратный вызов для обработки результата
function DeleteSuccessfull()
{
//Do what you want...
};
Вот и все ... имейте в виду, что это всего лишь пример, и я использую компонент диалога jQuery, а вы можете использовать что-то другое.