2016-02-05 108 views
-1

我是MVC新手,作爲我工作的一部分,我需要驗證下拉列表中包含必需的字段驗證,我嘗試了下面的方式,但驗證不起作用, 當我點擊提交按鈕沒有選擇下拉菜單驗證不起作用。MVC dropdownlist必填字段驗證不起作用

型號:

[Required(ErrorMessage = "*Required")] 
[Display(Name = "Environment")] 
public int? Environment { set; get; } 

控制器:

List<SelectListItem> environmentlist = new List<SelectListItem>(); 
environmentlist.Add(new SelectListItem { Text = "SIT", Value = "1" }); 
environmentlist.Add(new SelectListItem { Text = "UAT", Value = "2" }); 
environmentlist.Add(new SelectListItem { Text = "PROD", Value = "3" }); 
ViewBag.EnvironmentList = environmentlist; 

查看:

@Html.DropDownListFor(model => model.Environment,(IEnumerable<SelectListItem>)ViewBag.EnvironmentList, String.Empty) 
@Html.ValidationMessageFor(model => model.Environment) 
+0

什麼是不工作?您顯示的代碼將正常工作(如果您選擇第一個選項,您將收到驗證錯誤) –

+0

但我沒有收到錯誤,它是點擊事件 – Alex

+0

什麼是點擊事件?驗證不會觸發點擊事件,當表單控件中的值發生更改或表單被提交時會觸發驗證。顯示相關的代碼。 –

回答

0

這可以在你的代碼的幫助,

Public ActionResult yourMethod() 
{ 
    if (ModelState.IsValid) 
    { 
     // Your code 
    } 
    else 
    {     
     return View("Same View"); 
    } 
} 

瞭解ModelState.IsValid的更多內容。

0

請嘗試以下

@Html.DropDownListFor(model => model.Environment,(IEnumerable<SelectListItem>)ViewBag.EnvironmentList, new {required = "required"})