2014-07-01 48 views
-1

我在View一個DropDownList填充在控制器並傳遞到使用ViewViewBag.PussibleManager如果用戶選擇默認選項,如何顯示錯誤消息?

@Html.DropDownList("PussibleManager", null, new { @class = "form-control" }) 

這個DDL是第一項「請選擇...」,並將其值設爲-1。
如何檢查所選項目是否「請選擇...」,並在用戶按下保存按鈕時顯示類似Html.ValidationMessage之類的錯誤消息?

(我想迫使用戶選擇一個經理或保存按鈕不起作用!)

enter image description here

回答

0

下面的代碼行添加到您的視圖:

@Html.Validate("PussibleManager") 

,然後添加類似於下面的代碼的東西進入行動結果:

public ActionResult NameOfAction(NameOfViewModel model) 
{ 
    if (model.PussibleManager = 0) 
    { 
     ModelState.AddModelError("PussibleManager", "ErrorMessageHere"); 
    } 

    if (ModelState.IsValid) 
    { 
     // DO SOMETHING HERE 
    } 

    return View(model); 
} 

什麼會發生,當窗體提交(假設它是一個表單),它會發布到服務器。它會發現DDL出現錯誤,然後當它返回到ModelState.IsValid時,它將返回false,返回到視圖並返回錯誤消息。

這是許多例子中的一個,您可以在您傳回的ViewModel上使用DataAnnotations。另外NameOfViewModel只是一個類,包含從視圖傳遞迴服務器的項目。

或者,您可以根據其他用戶的回覆使用JQUERY驗證。

+0

感謝您的回答,正如我所說,這個下拉列表填充在我的控制器中,並且它不存在於ViewModel中。 – mok

+0

仍然遵循我給你的例子,但是代替'NameOfViewModel模型'(參考ActionResult)將其更改爲'string PussibleManager'。哦,並刪除'返回視圖(模型);'只是說'返回視圖();'如果你仍然不喜歡答案,我的建議然後看看JQUERY驗證。 – Damian

相關問題