Я вызываю метод удаления контроллера из ajax по нажатию кнопки, но когда я нажимаю кнопку, выдается сообщение об ошибке типа «Ссылка на объект не установлена для экземпляра объекта».
У меня есть код дляajax и вызов метода удаления ранее код javascript вызывался при каждой загрузке страницы, а не при нажатии кнопки, но затем я добавляю e.preventDefault ();Теперь проблема в том, что он выдает ошибку, а не переходит к методу удаления контроллера.
Мой код Javascript
<script>
function DeleteCall(id) {
// $(document.getElementById("sbmtInput").click(function(e){}
$('btnDelete').click(function (e) {
e.preventDefault();
$.ajax({
type: "POST",
url: '@Url.Action("Delete", "Student_Experience")',
data: JSON.stringify({ id: id }), //use id here
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function () {
// alert("Data has been deleted.");
location.reload();
$(".demo1").html(result);
},
error: function () {
alert("Error while deleting data");
}
});
});
</script>
Код моей кнопки <input type="submit" id="btnDelete" onclick="DeleteCall(@item.ID)" value="Delete" class="btn btn-sm btn-danger" />
Код моего контроллера
[HttpGet]
public ActionResult Delete(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Student_Experience student_Experience = db.Student_Experience.Find(id);
if (student_Experience == null)
{
return HttpNotFound();
}
// Student_Experience student_Experience = db.Student_Experience.Find(id);
db.Student_Experience.Remove(student_Experience);
db.SaveChanges();
return RedirectToAction("Create","Students");
// return View(student_Experience);
}
следует удалить выбранную строку