2013-01-20 4 views
0

[MetadataType] 클래스에서 [Remote] 속성을 사용하는 중 오류가 발생합니다. 다음과 같은 오류 메시지가 나타납니다. 오류 15 'Remote'속성이이 선언 유형에서 유효하지 않습니다. 'property, indexer'선언에만 유효합니다.[MetadataType]과 함께 'Remote'속성 사용

오류가 무슨 뜻인지 이해합니다. 왜 [원격]이 작동하지 않지만 다른 속성은 정상적으로 작동하는지 이해할 수 없습니다. 원격 속성의 정의에서

[MetadataType(typeof(StudentRowMeta))] 
public class StudentRow 
{ 
    public string Login { get; set; } 
} 

public class StudentRowMeta 
{ 
    [Required(ErrorMessage = "Please Enter Login")] 
    [StringLength(50, ErrorMessage = "Login can not be more than 50 characters")] 
    [Remote("IsLoginAvailable", "Validation")] 
    public object Login; 
} 

답변

1

:

[AttributeUsage(AttributeTargets.Property)] 
    public class RemoteAttribute : ValidationAttribute, IClientValidatable { ... 

에만 속성을 원래 RemoteAttribute를 사용할 수 있습니다. 그러나 사용의 후손에 대한 새로운 속성 정의를 막을 수있는 것은 없습니다 :

[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] 
public class MyRemoteAttribute : RemoteAttribute 
{ 
    public MyRemoteAttribute(string action, string controller) 
     : base(action, controller) 
    { 
    } 
    public MyRemoteAttribute(string action, string controller, string area) 
     : base(action, controller, area) 
    { 
    } 
} 

필드와 함께 저에게 효과적입니다.