0
因此,我有一个名为Proyecto
的数据库第一种方法创建的模型。要为模型添加注释,我创建了一个新的类类型部分,我在其中设置了注释,但它不能仅用于custom one
。以下是我试图做到这一点:无法在MVC3工作中进行自定义验证
第一个
在这其中我的接口设置为分类
[MetadataType(typeof(Proyecto.MetaData))]
public partial class Proyecto : IValidatableObject
{
private class MetaData
{
[Display(Name = "Fecha de Solicitud")]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> FechaSolicitud { get; set; }
[Required(ErrorMessage="Debe ingresar a un encargado de la información para el proyecto")]
[Display(Name="Responsable de la Informacion")]
public string ResponsableInformacion { get; set; }
[Display(Name="Cliente Nuevo")]
public Nullable<bool> ClienteNuevo { get; set; }
[Required(ErrorMessage="Debe colocar una explicación que describa la aplicacion a desarrollar")]
public string Descripcion { get; set; }
[Required(ErrorMessage="Debe Seleccionar un tipo de requerimiento")]
public Nullable<byte> IdTipoRequerimiento { get; set; }
[Display(Name="Nombre del Cliente")]
public string NombreCliente { get; set; }
}
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if ((ClienteNuevo == true) && (NombreCliente == String.Empty))
{
yield return new ValidationResult("Debe Colocar un nombre al Cliente");
}
}
}
第二个 我试图实现的接口metadata class
[MetadataType(typeof(Proyecto.MetaData))]
public partial class Proyecto
{
private class MetaData : IValidatableObject
{
[Display(Name = "Fecha de Solicitud")]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> FechaSolicitud { get; set; }
[Required(ErrorMessage="Debe ingresar a un encargado de la información para el proyecto")]
[Display(Name="Responsable de la Informacion")]
public string ResponsableInformacion { get; set; }
[Display(Name="Cliente Nuevo")]
public Nullable<bool> ClienteNuevo { get; set; }
[Required(ErrorMessage="Debe colocar una explicación que describa la aplicacion a desarrollar")]
public string Descripcion { get; set; }
[Required(ErrorMessage="Debe Seleccionar un tipo de requerimiento")]
public Nullable<byte> IdTipoRequerimiento { get; set; }
[Display(Name="Nombre del Cliente")]
public string NombreCliente { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if ((ClienteNuevo == true) && (NombreCliente == String.Empty))
{
yield return new ValidationResult("Debe Colocar un nombre al Cliente");
}
}
}
}
我在做什么错了?
UPDATE
我试图修改元数据类公共和只与类的名称,但仍然没有工作的访问修饰符...
很抱歉,但我试图修改为'public'修改器访问,没有它就像你的榜样,仍然没有工作... =( – Jorge 2012-01-27 13:53:53
你试过我放的第二个代码块吗? – 2012-01-27 14:19:15
是的..我尝试了像你的例子... – Jorge 2012-01-27 15:07:18