Я пытаюсь удалить запись из списка записей.раньше это работало нормально.Теперь, когда я нажимаю «Удалить» в функции ajax, выдается исключение «Элемент с таким же ключом уже добавлен».
Я попробовал некоторые варианты из уже заданных и отвеченных вопросов по этой теме, но я не могурешить мою проблему.я не могу выяснить, где в моем коде есть любое повторяющееся имя или любая другая дублирующаяся сущность / переменная.
HTML
<td>
<div class="hidden-phone visible-desktop btn-group">
<a href="@Url.Content("~/backend/Car/UpdateUsedCar/")@CryptoProvider.Encrypt(Car.Id)" class="btn btn-mini btn-info" title="Edit Car"><i class="icon-edit"></i></a>
@*<a href="@Url.Content("~/backend/Car/UsedCarDetails/")@CryptoProvider.Encrypt(Car.Id)" class="btn btn-mini btn-info" title="Details Car"><i class="icon-play"></i></a>*@
<a href="@Url.Content("~/backend/Car/DeleteUsed/")@CryptoProvider.Encrypt(Car.Id)" onclick='javascript:return deleteConfirmation(this);' class='btn btn-mini btn-danger' title="Delete Car"><i class="icon-trash"></i></a>
<a class="invisible" href="@Url.Content("~/backend/Car/DisableCar/")@CryptoProvider.Encrypt(Car.Id)" onclick='javascript:return deleteConfirmation(this);' class='btn btn-mini btn-danger' title="Restore Car"><i class="icon-ok"></i></a>
</div>
<div class="hidden-desktop visible-phone">
<div class="inline position-relative">
<button class="btn btn-minier btn-yellow dropdown-toggle" data-toggle="dropdown"><i class="icon-caret-down icon-only"></i></button>
<ul class="dropdown-menu dropdown-icon-only dropdown-yellow pull-right dropdown-caret dropdown-close">
<li><a href="@Url.Content("~/backend/Car/UpdateUsedCar/")@CryptoProvider.Encrypt(Car.Id)" class="tooltip-success" data-rel="tooltip" title="Edit Car" data-placement="left"><span class="green"><i class="icon-edit"></i></span></a></li>
@*<li><a href="@Url.Content("~/backend/Car/UsedCarDetails/")@CryptoProvider.Encrypt(Car.Id)" class="tooltip-success" data-rel="tooltip" title="Details Car" data-placement="left"><span class="green"><i class="icon-play"></i></span></a></li>*@
<li><a href="@Url.Content("~/backend/Car/DeleteUsed/")@CryptoProvider.Encrypt(Car.Id)" onclick='javascript:return deleteConfirmation(this);' class='tooltip-error' data-rel="tooltip" title="Delete Car" data-placement="left"><span class="red"><i class="icon-trash"></i></span></a></li>
<li class="invisible"><a href="@Url.Content("~/backend/Car/DisableCar/")@CryptoProvider.Encrypt(Car.Id)" onclick='javascript:return deleteConfirmation(this);' class='tooltip-error' data-rel="tooltip" title="Restore Car" data-placement="left"><span class="red"><i class="icon-ok"></i></span></a></li>
</ul>
</div>
</div>
</td>
Функции Jquery для подтверждения удаления
function deleteConfirmation(link) {
debugger;
var index = $(link).parent().parent().parent().index();
$('.deleteThisRecord').removeClass('deleteThisRecord'); // Unselect All
$(link).addClass('deleteThisRecord');
var message = GetMessageBox(confirmHeading, deleteMessage, true);
$('#dataConfirmModal').remove();
$('body').append(message);
//if (!$('#dataConfirmModal').length) {
// $('body').append(message);
//}
$('#dataConfirmModal').find('.modal-body').text($(link).attr('data-confirm'));
$('#dataConfirmOK').attr('onclick', 'javascript:ajaxDeletion(' + index + ');');
$('#dataConfirmModal').modal({ show: true });
return false;
}
function ajaxDeletion(pos) {
debugger;
//var url = $('tbody').children('tr').eq(pos).find('.icon-trash').parent().attr('href');
//var ico = $('tbody').children('tr').eq(pos).find('.icon-trash');
//var tr = $('tbody').children('tr').eq(pos);
//var row = $(ico).closest('tr');
var url = $('.deleteThisRecord').attr('href');
var row = $('.deleteThisRecord').parents('tr').eq(0);
var nRow = row[0];
$.ajax({
url: url,
type: "POST",
dataType: "json",
success: function (data, status) {
debugger;
if (data.status == 'success') {
//oTable.fnDeleteRow(pos);
//var table1 = $('tbody').parent();
//alert(tabl1);
//table1.deleteRow(pos);
//while (table && table.tagName != 'TABLE')
// table = table.parentNode;
//if (!table)
// return;
//table.deleteRow(row.rowIndex);
oTable.fnDeleteRow(nRow);
$('#dataConfirmLabel').html(successHeading);
$('.modal-body').html(data.message);
VerifyTable();
} else {
debugger;
$('#dataConfirmLabel').html(failedHeading);
$('.modal-body').html(data.message);
}
debugger;
$('#btnDialogCancel').hide();
$('#dataConfirmOK').attr('onclick', '');
$('#dataConfirmOK').attr('onclick', "$('.close').click();");
},
error: function (data, status) {
debugger;
//console.log(data);
//alert(" Can't do because: " + error);
}
});
return false;
}
Функция в контроллере
public ActionResult DeleteUsed(KapCarViewModel model)
{
delete record
}
Функция дешифрования зашифрованного значения из внешнего интерфейса
public bool ContainsPrefix(string prefix) {
try {
if (_routeData.Values[prefix] == null || !prefix.ToLower().Equals("id") || _id > 0 || Convert.ToString(_routeData.Values["controller"]) == "Home" ) {
return false;
}
_routeData.Values[prefix] = CryptoProvider.Decrypt(_routeData.Values[prefix].ToString());
_id = Convert.ToInt32(_routeData.Values[prefix]);
return true;
}
catch (Exception)
{
throw new Exception("Invalid request found.");
}
return false;
}
Просмотр модуля для получения / установки значений
public class KapCarViewModel : BaseViewModel
{
public int Id { get; set; }
public string EncryptedId { get; set; }
}
Мне нужно удалить запись после подтверждения пользователя «ОК» из диалогового окна.но «Элемент с тем же ключом уже добавлен».эта ошибка не позволяет мне сделать это.я не делал этот код с нуля, но раньше он работал нормально.вдруг это перестало работать.Пожалуйста, помогите мне в решении этой проблемы.Примечание: когда этот код переходит от внешнего интерфейса для расшифровки значения идентификатора записи.функция дешифрования затем получает доступ к модели представления, где она выдает ошибку