2013-03-24 45 views
0

我已经使用Razor HTML在MVC 4中创建了一个应用程序。我已经建立了一个模型,它有几个属性,我的删除方法在下面发布。此方法完美工作,除非我不希望它允许我删除任何属性不是特定数字的东西。我如何在这种方法中实现?基于MVC中的条件删除方法4

public ActionResult Delete(int id = 0) 
{ 
Material material = db.Materials.Find(id); 
if(material == null) 
{ 
    return HttpNotFound(); 
} 
return View(material); 
} 


[HttpPost, ActionName("Delete")] 
public ActionResult DeleteConfirmed(int id) 
{ 
Material material = db.Materials.Find(id); 
db.Materials.Remove(material); 
db.SaveChanges(); 
return RedirecttoAction("Index"); 
} 
+0

“如果其中一个属性不是某个数字”。会不会有一个简单的'if'声明起作用? – 2013-03-24 22:02:32

+0

据我了解,你只需要一个简单的'if'子句。所以我猜,你的意思是别的。你可以再详细一点吗? – 2013-03-24 22:02:40

回答

1

在这两个您的GET和POST操作,检查属性并返回替代“不删允许”的观点,如果你正在检查的属性没有允许值。

public ActionResult Delete(int id = 0) 
{ 

    Material material = db.Materials.Find(id); 
    if(material == null) 
    { 
     return HttpNotFound(); 
    } 
    else if (material.CheckedProperty != AllowableValue) 
    { 
     return View("DeleteNotAllowed", material); 
    } 
    return View(material); 
} 


[HttpPost, ActionName("Delete")] 
public ActionResult DeleteConfirmed(int id) 
{ 
    Material material = db.Materials.Find(id); 
    if (material.CheckedProperty != AllowableValue) 
    { 
     return View("DeleteNotAllowed", material); 
    } 

    db.Materials.Remove(material); 
    db.SaveChanges(); 
    return RedirecttoAction("Index"); 
}