1
我正在遇到一个ASP.NET MVC 3 ListBox验证奇怪的问题,如标题中所述。基本上,我有一个列表在我的viewmodel,我绑定到一个列表框启用多个选择。ASP.NET MVC 3列表框验证
列表被赋予一个属性[必需]。当我提交选择单个值的表单时,它通过了验证,没有打嗝。但是,多于一个,验证就会失败。
有什么想法?
我正在遇到一个ASP.NET MVC 3 ListBox验证奇怪的问题,如标题中所述。基本上,我有一个列表在我的viewmodel,我绑定到一个列表框启用多个选择。ASP.NET MVC 3列表框验证
列表被赋予一个属性[必需]。当我提交选择单个值的表单时,它通过了验证,没有打嗝。但是,多于一个,验证就会失败。
有什么想法?
奇怪,我无法重现您的问题。
型号:
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>
}
如果没有在列表中选择任何项目显示的验证错误信息。如果选择一个或多个项目,则验证通过,并且不显示错误消息。
哎呀,我想我找到了问题。对不起,发布。我实际上有另一个验证属性[Integer],它携带与Required相同的ErrorMessage。 –