c# - 为什么我收到状态为 500 的错误(内部服务器错误)
问题描述
我有一个问题,不幸的是我看不到错误。问题如下。我创建 Delete 方法并在AJAX
单击按钮时调用该方法。但是当我转到索引页面并尝试删除项目时,我只收到我的 swall aller 显示的错误消息。
error: function (data) {
swal("Oops", "Something went wrong!", "error");
}
到目前为止我所做的,我Delete Action
在我的控制器中创建
[HttpPost,ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
Language language = db.Languages.Find(id);
db.Languages.Remove(language);
db.SaveChanges();
return RedirectToAction(nameof(Index));
}
在我的Index Page
我创建了这个:
<div class="panel panel-flat">
<div class="panel-body">
<table class="table datatable-responsive datatable-languages">
<thead>
<tr class="bg-blue">
<th>
Language Name
</th>
<th>
Country Code (Flag)
</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr id="tr-id-@item.language_id">
<td>
@Html.DisplayFor(modelItem => item.name)
</td>
<td>
@Html.DisplayFor(modelItem => item.code)
</td>
<td>
<ul class="icons-list text-left">
<li class="text-primary-600"><a href="~/Languages/Edit?Id=@item.language_id"><i class="icon-pencil7"></i></a></li>
<li class="text-danger-600"><a class="delete_languages" href="javascript:;" data-id="@item.language_id"><i class="icon-trash"></i></a></li>
</ul>
</td>
</tr>
}
</tbody>
</table>
</div>
</div>
我的 AJAX 调用:
<script>
$('.datatable-languages').DataTable({
dom: 'Bfrtip',
columnDefs: [
{
responsivePriority: 1,
targets: -1
},
{
targets: [-1],
orderable: false,
searchable: false,
printable: false,
width: "120"
}
]
});
$(document).on('click', '.delete_languages', function () {
var myId = $(this).attr('data-id');
console.log(myId);
var parent = $(this).parent().parent().parent().parent();
swal({
title: "Are you sure?",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#FF7043",
confirmButtonText: "Yes, delete it!",
closeOnConfirm: false,
showLoaderOnConfirm: true,
},
function () {
$.ajax({
type: "post",
url: "/Languages/Delete",
data: { id: myId },
success: function () {
parent.fadeOut('slow', function () { $(this).remove(); $('.child').remove() });
setTimeout(function () { swal("Deleted!", "Record deleted successfully!", "success"); }, 2000);
},
error: function (data) {
swal("Oops", "Something went wrong!", "error");
}
});
})
});
</script>
之前的一个符号,我尝试删除 AJAX 调用,并在我的索引页面中添加了这行代码,它可以工作
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.BlogId }) <br />
@Html.ActionLink("Details", "Details", new { id = item.BlogId }) <br />
@Html.ActionLink("Delete", "Delete", new { id = item.BlogId })
</td>
谁能帮助我并告诉我哪里出错了,因为我找不到,也不知道从哪里开始寻找。一切看起来都不错,但无法删除项目,在控制台中我收到错误消息
内部服务器错误 (500)
解决方案
你必须使用
return Json(new { success = true },JsonRequestBehavior.AllowGet);
删除 ajax 后将返回成功方法,但删除后您正在尝试重定向它,因此,它给您 500 的错误。Ajax 具有它不会重新加载您的页面并执行后端任务然后您可以重新加载的属性您要更新的列表。
推荐阅读
- wolfram-mathematica - 如何将当前迭代的答案与 Mathematica 中的前一个进行比较
- node.js - VueJS 自定义组件导入有时有效
- c# - 使用 Graph SDK - C# 获取文件夹内容
- arrays - 快速根据案例名称过滤枚举
- android - 应用更新被拒绝,说明我的应用 Sush com.toto.sush 不符合使用 READ_SMS、SEND_SMS、READ_CALL_LOG 的条件
- google-calendar-api - Google 日历推送通知:创建之前/之后的新事件和事件验证
- mysql - 如何将多行相乘?(业余)
- php - 在 PHP 中使用 webhook 将文件上传到 Discord
- python - timeit() 的更具体定义是什么,或者它有什么作用?
- javascript - 发布请求后出现“发送到客户端后无法设置标头”错误