我使用[MetadataType]类上的[Remote]属性收到错误。我收到以下错误: 错误15属性“远程”在此声明类型上无效。它仅对'property,indexer'声明有效。
我理解错误在说什么,我只是不明白为什么[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;
}
答案 0 :(得分:1)
在Remote属性的定义中:
[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)
{
}
}
它对我来说很有用。