У меня проблема с удалением, редактированием строки из jquery datatable, она постоянно сообщает мне об этой ошибке
словарь параметров содержит пустую запись для параметра 'id' ненулевого типа
Я выясняю, что проблема заключается в том, что я передаю идентификатор, так как когда я помещаю идентификатор непосредственно в код Ajax, он работает хорошо
Вот моя Product
модель:
public partial class Products
{
public int ID { get; set; }
// Other properties removed for brevity
}
И delete
метод в контроллере
public ActionResult delete(int id)
{
db.Configuration.ProxyCreationEnabled = false;
Products d = db.Products.Where(m => m.ID == id).FirstOrDefault<Products>();
db.Products.Remove(d);
db.SaveChanges();
return Json("success", JsonRequestBehavior.AllowGet);
}
Вот моя строка DataTable
, где расположена кнопка delete
.
{
"data": "id", "render": function (data) {
console.log(data);
return "<a class='btn btn-success' onclick=Editrow(" + data + ") style='margin-left:12px'><i class='glyphicon glyphicon-edit'></i> Edit Record<a/> <a class='btn btn-danger' onclick=DeleteRow(" + data + ")><i class='glyphicon glyphicon-trash'></i> Delete<a/>";
},
Здесь data
становится неопределенным.
Вот мой код Ajax:
function DeleteRow(id) {
if (confirm("Are You sure to delete this record..?")) {
$.ajax({
type: 'POST',
//url: "/Products/delete/" + id,
url: '@Url.Action("delete", "Products")/' + id,
datatype: 'JSON',
//data: JSON.stringify({ id: id }),
success: function (response) {
if (response == "success") {
alert("Data Deleted successfully..");
window.location.reload();
//$("#myModal").modal('hide');
}
},
error: function (msg) {
alert(msg.responseText);
}
});
}
}
Примечание: - когда я непосредственно добавляю идентификатор, я хочу удалить в коде Ajax, как это, он работает хорошо
url: '@Url.Action("delete", "Products")/' + 10,