我有一個視圖模型,其中有兩個屬性是可選的 - 即 - 不是必需的。該視圖使用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