首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我得到状态为500的错误(内部服务器错误)

为什么我得到状态为500的错误(内部服务器错误)
EN

Stack Overflow用户
提问于 2020-12-30 20:40:58
回答 1查看 362关注 0票数 0

我有一个问题,不幸的是,我看不到错误。问题就在后面。我创建删除方法,并在AJAX中按一下按钮调用该方法。但是当我去索引页并尝试删除项目时,我只收到错误消息,这是我的swall删除的。

代码语言:javascript
运行
复制
error: function (data) {
                        swal("Oops", "Something went wrong!", "error");
                    }

到目前为止,我在控制器中创建了Delete Action

代码语言:javascript
运行
复制
[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中,我创建了以下内容:

代码语言:javascript
运行
复制
<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电话:

代码语言:javascript
运行
复制
<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调用,在我的索引页中我添加了这一行代码,它可以工作

代码语言:javascript
运行
复制
<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)

EN

回答 1

Stack Overflow用户

发布于 2021-10-02 19:25:26

你必须用

返回Json(new { success = true },JsonRequestBehavior.AllowGet);

删除ajax后,将返回到成功的方法,但在删除之后,您将尝试重定向它,因此,它给您的错误为500。Ajax具有不重新加载页面和执行后端任务的属性,然后可以重新加载要更新的列表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65513312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档