我有一个视图模型,其中有两个属性是可选的 - 即 - 不是必需的。该视图使用dropdownlistfor()来获取这两个字段的值,一个包含空白值的选项标签“”。MVC2验证 - “需要一个值”
当发回到创建操作时,ModelState对于这两个字段都有一个错误,表示“需要一个值”。
任何人有任何线索,如果这是一个错误或一个愚蠢的用户(即我)的错误?
感谢
UDPATE:
视图模型看起来是这样的: [DisplayName的( “校验位类型”) 公共VMBarcodeMaskCheckDigitType BarcodeMaskCheckDigitType { 搞定; 集; }
[DisplayName("Mask Type")]
[Required(ErrorMessage="Mask type is required")]
public VMBarcodeMaskType BarcodeMaskType
{
get;
set;
}
[DisplayName("Product")]
public VMProduct Product
{
get;
set;
}
在控制器的结合是:
public ActionResult Create()
{
BarcodeMaskViewModel model = new BarcodeMaskViewModel(new VMBarcodeMask(), Domain.GetBarcodeMaskTypes(), Domain.GetBarcodeCheckDigitTypes(), Domain.GetProducts());
return View(model);
}
//
// POST: /Barcode/Create
[HttpPost]
public ActionResult Create(BarcodeMaskViewModel model)
{
try
{
if (ModelState.IsValid)
{
...
}
}
catch (Exception ex)
{
ModelState.AddModelError("*", ex);
}
return View(new BarcodeMaskViewModel(model.BarcodeMask, Domain.GetBarcodeMaskTypes(), Domain.GetBarcodeCheckDigitTypes(), Domain.GetProducts()));
}
你使用什么验证技术?我假设DataAnnotation验证属性?你可以发布这个视图模型和绑定的代码吗? – Charlino 2009-12-14 02:18:15
下面是查看模型的相关部分: [DisplayName(“Check Digit Type”)] public VMBarcodeMaskCheckDigitType BarcodeMaskCheckDigitType { get; 集; } [DisplayName的( “掩码类型”)] [必需的(的ErrorMessage = “蒙片类型是必需的”)] 公共VMBarcodeMaskType BarcodeMaskType { GET; 集; } [DisplayName(“Product”)]] public VMProduct Product { get; 集; } – Jonesie 2009-12-14 03:13:31