2012-11-01 61 views
0

我需要在我的控制器的删除操作期间执行验证。 ASP.net MVC3有什么可以协助这种类型的验证吗?我知道你可以使用属性来处理编辑验证,但删除呢?在删除之前处理​​验证的最佳方法?

例如我需要检查实体对象的状态,如果符合某些条件,则不允许删除它们。什么是检查并显示错误

回答

1

你可以有你的删除操作是类似下面的最佳途径,你可以通过在CanThiBeDeleted()做下面的方法的例子拨打电话就像检查你的情况,如果没有,那么你可以向模型状态添加一个错误并将其发送回显示该错误消息的视图。

public ActionResult Delete(string id) 
{ 
    if(!_service.CanThisBeDeleted(id)) 
    { 
     ModelState.AddModelError("", "Sorry this cannot be deleted !"); 
     return View(); 
    } 

    bool isItemDeleted = false; 
    isItemDeleted = _service.DeleteItem(id); 

    if(isItemDeleted) 
    { 
     // if deleted send where you want user to go. 
     return RedirectToAction("Index"); 
    } 
    else 
    { 
     ModelState.AddModelError("", "Delete operation failed."); 
     return View(); 
    } 
} 

您的视图可以使用@Html.ValidationSummary显示你想要显示的错误/警告。

+0

我做了类似的事情,但不知道ModelState和ValidationSummary,我想我会改变它来使用它。 –