継承されたプロパティと MetadataType は、ASP.NET MVC 2 のクライアント側の検証では機能しないようです。
MetadataTypes の検証はサーバー上で期待どおりに機能しますが、何らかの理由で適切なクライアント スクリプトが生成されません。クライアント側の検証は、PersonView に設定された DataAnnotations 属性を持つプロパティに対して期待どおりに開始されるため、クライアント側の検証がアクティブであり、機能することがわかります。修正できるかどうか、または修正できる方法を知っている人はいますか?
ここに私たちが持っているものがあります:
public abstract class PersonView
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
[Required] public string PhoneNumber { get; set; }
public string AddressLine1 { get; set; }
public string AddressLine2 { get; set; }
public string AddressZipCode { get; set; }
public string AddressCity { get; set; }
public string AddressCountry { get; set; }
}
[MetadataType(typeof(CustomerViewMetaData))]
public class CustomerView : PersonView {}
[MetadataType(typeof(GuestViewMetaData))]
public class GuestView : PersonView {}
public class GuestViewMetaData
{
[Required(ErrorMessage = "The guests firstname is required")] public string FirstName { get; set; }
[Required(ErrorMessage = "The guests lastname is required")] public string LastName { get; set; }
}
public class CustomerViewMetaData
{
[Required(ErrorMessage = "The customers firstname is required")] public string FirstName { get; set; }
[Required(ErrorMessage = "The customers lastname is required")] public string LastName { get; set; }
[Required(ErrorMessage = "The customers emails is required")] public string Email { get; set; }
}
ご覧のとおり、そこには空想や奇妙なものは何もありません.修正できますか? ASP.NET MVC 2 のバグですか?