2013-06-11 61 views
2

我有具有類似屬性的模型如下:驗證在MVC下降4

[Required] 
public int SingleSelect { get; set; } 

比我在控制器建立一個的SelectList並將其傳遞噸的viewbag

public ActionResult Index() 
    { 
     ViewBag.SingleSelectList = new SelectList(new[] 
             { 
              new {ID="0",Name="-- Select --"}, 
              new {ID="1",Name="Select 1"}, 
              new{ID="2",Name="Select 2"}, 
              new{ID="3",Name="Select 3"}, 
             }, 
         "ID", "Name", 0); 


     return View(); 
    } 

然後在視圖()我使用呈現一個漂亮的下拉框中選擇以下:

@Html.LabelFor(obj => obj.SingleSelect, new { @class = "control-label"}) 
@Html.DropDownListFor(obj => obj.SingleSelect, ViewBag.SingleSelectList as SelectList) 
@Html.ValidationMessageFor(obj => obj.SingleSelect) 

<button class="btn btn-primary" type="submit">Validate!</button> 

我怎樣才能得到驗證工作如果用戶沒有在表單提交上做出選擇(仍在選項「 - 選擇 - 」),則顯示錯誤?

回答

2

你可以嘗試兩種方法,首先

[Required, Range(1, Int32.MaxValue)] 
public int SingleSelect { get; set; } 

或更改您的SelectList:

ViewBag.SingleSelectList = new SelectList(new[] 
{ 
    new {ID="0",Name="-- Select --", Value=""}, 
    new {ID="1",Name="Select 1"}, 
    new{ID="2",Name="Select 2"}, 
    new{ID="3",Name="Select 3"}, 
}, 
"ID", "Name", 0);