无法将'数据注释'转换为'bool'

时间:2013-01-25 12:45:46

标签: c# asp.net customvalidator

来自http://msdn.microsoft.com/en-us/library/f5db6z8k(v=vs.100).aspx

我创建了一个customeValidators.cs页面,它检查输入的数据是否存在于Db中。 这有效。但是当我试图从必要的页面中调用它时

protected void runUniqueReference(object source, ServerValidateEventArgs args)
{
    args.IsValid = (CustomValidators.UniqueReference(BOQRefTextBox.Text));
}

我收到CustomValidators.UniqueReference的错误,无法将'数据注释'转换为'bool' 任何的想法? EDIT;

 public static ValidationResult UniqueReference(string Reference)
    {
        ContextDB db = new  ContextDB();

        var lisStoredInDB =
            (from Bill in db.Bill_Of_Quantities
             where Bill.Reference == Reference
             select Bill.Reference).ToList();

        if (lisStoredInDB.Count != 0)
        {
            return new ValidationResult(string.Format("This reference is already stored in the database, Please enter another"));
        }

        return ValidationResult.Success;
    }

1 个答案:

答案 0 :(得分:1)

args.IsValid的类型为boolCustomValidators.UniqueReference不得返回该类型的值。因此,

args.IsValid = (CustomValidators.UniqueReference(BOQRefTextBox.Text));

将无效,因为您无法将UniqueReference的返回值分配给IsValid

由于UniqueReference返回ValidationResult,因此它应该如下所示:

args.IsValid = (CustomValidators.UniqueReference(BOQRefTextBox.Text)).IsValid;