我想删除数据。这是我的代码。当我试图删除数据时,它会给出错误。
这是我的代码
public ActionResult delete(Int32 id)
{
var contentdelete = (from m in _db.tb_content
where m.id == id
select m).First();
return View(contentdelete);
}
public ActionResult delete(MvcNTL.Models.tb_content contentdelete)
{
var content = (from m in _db.tb_content
where m.id == contentdelete.id
select m).First();
if (!ModelState.IsValid)
return View(content);
_db.ApplyCurrentValues(content.EntityKey.EntitySetName, contentdelete);
_db.SaveChanges();
return RedirectToAction("index");
}
这是错误
控制器类型'ContentController'上的当前动作'delete'请求在以下操作方法之间是不明确的: 类型为MvcNTL.Controllers.ContentController的System.Web.Mvc.ActionResult delete(Int32) 类型为MvcNTL.Controllers.ContentController的System.Web.Mvc.ActionResult delete(MvcNTL.Models.tb_content)
答案 0 :(得分:1)
您需要在第二个删除控制器中添加[HTTPPOST]。他们现在都得到控制器,所以mvc不知道要选哪一个。
答案 1 :(得分:1)
在同一个HTTP动词可访问的控制器上,不能有2个具有相同名称的操作。你应该用[HttpPost]
属性装饰第二个:
[HttpPost]
public ActionResult delete(MvcNTL.Models.tb_content contentdelete)
{
var content = (from m in _db.tb_content
where m.id == contentdelete.id
select m).First();
if (!ModelState.IsValid)
return View(content);
_db.ApplyCurrentValues(content.EntityKey.EntitySetName, contentdelete);
_db.SaveChanges();
return RedirectToAction("index");
}
这使得实际执行删除的第二个操作只能使用POST动词访问。第一个动作可以通过GET动词访问,并将呈现表格。
答案 2 :(得分:0)
[HttpPost]
public ActionResult delete(MvcNTL.Models.tb_content contentdelete)
{
var content = (from m in _db.tb_content
where m.id == contentdelete.id
select m).First();
if (!ModelState.IsValid)
return View(content);
_db.ApplyCurrentValues(content.EntityKey.EntitySetName, contentdelete);
_db.SaveChanges();
return RedirectToAction("index");
}