我有一个标准(CRUD生成)删除功能
// GET: Posts/Delete/5
public ActionResult Delete(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Post post = db.Posts.Find(id);
if (post == null)
{
return HttpNotFound();
}
return View(post);
}
// POST: Posts/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
Post post = db.Posts.Find(id);
db.Posts.Remove(post);
db.SaveChanges();
return RedirectToAction("Index");
}
我想在控制器内调用这个
if (totalVotes <= 5 && voteValue == -1)
{
Delete(postId); //NOT WORKING
}
但是这让我获得了删除GET功能。我猜我必须在控制器内做一个帖子,但是怎么做?
答案 0 :(得分:0)
将删除代码移动到某个方法,并根据需要从多个方法中调用它。
public ActionResult DeleteConfirmed(int id)
{
DeletePost(id);
return RedirectToAction("Index");
}
private void DeletePost(int id)
{
Post post = db.Posts.Find(id);
db.Posts.Remove(post);
db.SaveChanges();
}
以及同一控制器中的其他方法
if (totalVotes <= 5 && voteValue == -1)
{
DeletePost(postId);
}
请注意,DeletePost
方法不会返回任何内容。所以你的调用方法必须返回一些响应(如果该方法的返回类型不是空的)