删除前处理验证的最佳方法是什么?

时间:2012-11-01 03:43:38

标签: asp.net-mvc-3

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

例如,我需要检查实体对象的状态,如果满足某个条件,则不允许删除它们。什么是检查和显示错误的最佳方法

1 个答案:

答案 0 :(得分: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来显示您想要显示的错误/警告。