我需要在控制器中的删除操作期间执行验证。ASP.net MVC3 有什么可以帮助进行这种类型的验证吗?我知道您可以使用属性来处理编辑验证,但删除呢?
例如,我需要检查实体对象的状态,如果满足某个条件,则不允许删除它们。检查和显示错误的最佳方法是什么
我需要在控制器中的删除操作期间执行验证。ASP.net MVC3 有什么可以帮助进行这种类型的验证吗?我知道您可以使用属性来处理编辑验证,但删除呢?
例如,我需要检查实体对象的状态,如果满足某个条件,则不允许删除它们。检查和显示错误的最佳方法是什么
您可以让您的删除操作如下所示,您可以通过像下面的示例中的方法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
用来显示您想要显示的错误/警告。