[英]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");
}
ValidateAntiForgeryToken
。 这可以解决它,尽管我不记得是否确实是 HttpAntiForgeryException 返回的 500 错误。 无论如何,您需要在您的请求中包含防伪令牌(您不是)或(此时仅用于调试)暂时删除 ValidateAntiForgeryToken。 我也刚刚注意到您的Delete
操作,并且您没有包含它的路由信息,因此它也很可能会导致问题。 再次,没有足够的信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.