我有在它下面的属性定义发票对象...自定义验证似乎无法找到声明的方法
[CustomValidation(typeof(InvoiceValidator), "ValidateInvoiceDate")]
public DateTime InvoiceDate { get; set; }
当我在我的MVC应用程序做了回发我得到一个发票对象当时这样做......
if(ModelState.IsValid)
{
SaveInvoice(invoice);
}
我的验证程序看起来像这样...
public static class InvoiceValidator
{
public static ValidationResult ValidateInvoiceDate(DateTime invoiceDate, ValidationContext context)
{
// some validation code (omitted)
}
}
我的问题似乎越来越牛逼他坝东西的工作作为目前它只是抛出一个异常:
The CustomValidationAttribute method 'ValidateInvoiceDate' does not exist in type 'InvoiceValidator' or is not public and static.
这种说法显然是不正确的,校验类存在也是如此用正确的修饰符(公共的,静态)的方法。这是我以前使用过的代码,通常工作正常,但由于某些原因,这次无法正常工作。
任何想法还有什么可能导致此异常被抛出?
事情我已经尝试:
干净的解决方案,并完全重建(没有错误在编译时)。 重命名方法/验证器类和重构属性为新值然后重新编译 刮头 问就到这里
我看来像我的代码没有被正确运行或东西,因为我不明白为什么一个明确宣布公共静态方法会导致一个错误,说它没有声明除此之外。
这是一个棘手的问题。好侦探工作! – trailmax