2012-11-01 58 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,我想我會改變它來使用它。 –