繁体   English   中英

如何在不使用删除对话框 mvc C# 的情况下删除项目表单列表

[英]How to delete item form list without using a delete dialog mvc C#

我正在开发一个 MVC C# 应用程序,我有一些类似于“购物车”的东西。 按照亚马逊的步骤,我希望用户能够删除项目但没有弹出对话框。

这是我的查看按钮

            <button class="btn btn-danger feather icon-trash-2" onclick="delItem('@item.transactionId')" data-toggle="tooltip" title="Delete"></button>

以下是我在脚本中的 function

function delItem(transID) {
    $.ajax({
        type: "POST",
        url: '@Url.Action("Delete", "Services")',
        data: transID,
        cache: false,
        dataType: 'json',

    });
}

这个想法是转到 postMethod 并执行删除。 但是我收到“500 内部服务器错误”

vendor-all.min.js:3 POST http://localhost:58004/Services/Delete 500 (Internal Server Error)

感谢任何帮助。

问候

Controller 删除代码

public ActionResult Delete(Guid? id)
{
    if (id == null)
    {
        return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
    }
    Transaction transaction = db.Transactions.Find(id);
    if (transaction == null)
    {
        return HttpNotFound();
    }
    return View(transaction);
}

// POST: Transactions/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(Guid id)
{
    Transaction transaction = db.Transactions.Find(id);
    db.Transactions.Remove(transaction);
    db.SaveChanges();

    return RedirectToAction("Index");
}
  1. 删除ValidateAntiForgeryToken 这可以解决它,尽管我不记得是否确实是 HttpAntiForgeryException 返回的 500 错误。 无论如何,您需要在您的请求中包含防伪令牌(您不是)或(此时仅用于调试)暂时删除 ValidateAntiForgeryToken。
  2. 然后,如果确实发生了另一个异常,您将能够逐步完成该过程。

我也刚刚注意到您的Delete操作,并且您没有包含它的路由信息,因此它也很可能会导致问题。 再次,没有足够的信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM