2011-11-22 105 views
1

我正在遇到一個ASP.NET MVC 3 ListBox驗證奇怪的問題,如標題中所述。基本上,我有一個列表在我的viewmodel,我綁定到一個列表框啓用多個選擇。ASP.NET MVC 3列表框驗證

列表被賦予一個屬性[必需]。當我提交選擇單個值的表單時,它通過了驗證,沒有打嗝。但是,多於一個,驗證就會失敗。

有什麼想法?

回答

5

奇怪,我無法重現您的問題。

型號:

public class MyViewModel 
{ 
    [Required(ErrorMessage = "Please select at least one item")] 
    public string[] SelectedItems { get; set; } 

    public IEnumerable<SelectListItem> Items 
    { 
     get 
     { 
      return Enumerable.Range(1, 5).Select(x => new SelectListItem 
      { 
       Value = x.ToString(), 
       Text = "item " + x 
      }); 
     } 
    } 
} 

控制器:

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     return View(new MyViewModel()); 
    } 

    [HttpPost] 
    public ActionResult Index(MyViewModel model) 
    { 
     return View(model); 
    } 
} 

觀點:由於預期

@model MyViewModel 

@using (Html.BeginForm()) 
{ 
    @Html.ListBoxFor(x => x.SelectedItems, Model.Items) 
    @Html.ValidationMessageFor(x => x.SelectedItems) 
    <button type="submit">OK</button> 
} 

如果沒有在列表中選擇任何項目顯示的驗證錯誤信息。如果選擇一個或多個項目,則驗證通過,並且不顯示錯誤消息。

+0

哎呀,我想我找到了問題。對不起,發佈。我實際上有另一個驗證屬性[Integer],它攜帶與Required相同的ErrorMessage。 –