在MetadataType类上使用Remote属性时出现错误。我得到以下错误:错误15属性'Remote‘在此声明类型上无效。它只在“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;
} 发布于 2013-06-09 23:15:26
在远程属性的定义中:
[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)
{
}
}这对我的field来说是有效的。
https://stackoverflow.com/questions/14424673
复制相似问题