Kri*_*Ahl 5 validation asp.net-mvc modelmetadata
ASP.NET MVC 2中的继承属性和MetadataType似乎不适用于客户端验证.
我们的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; }
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的那样,那里没什么奇特或奇怪的东西......可以修复吗?它是ASP.NET MVC 2中的错误吗?
据 Microsoft 官员称,这是 ASP.NET MVC 2 中的一个错误。我收到了下面的链接,虽然场景不完全相同,但似乎是同一个问题。据我所知,它与继承属性和 DataAnnotations 模型元数据提供程序有关。该链接表示他们将尝试修复 ASP.NET MVC 3 中的问题。
Asp.net MVC 2 RC2:客户端验证不适用于覆盖的属性
| 归档时间: |
|
| 查看次数: |
5251 次 |
| 最近记录: |