我的mvc3应用程序有问题,我需要创建一些验证的东西。但我没有正常的模型类,因为我已经使用EF和数据库第一种方法。
我不能只打开课程并写下类似的内容:
[Required]
[StringLength(10)]
如何解决这个问题?
答案 0 :(得分:2)
您可以使用MetadataType attribute。因此,假设EF吐在你面前的下一课你无法修改:
public partial class Foo
{
public string Bar { get; set; }
}
现在你可以扩展它,因为它是partial class:
[MetadataType(typeof(FooMetadata))]
public partial class Foo
{
}
然后定义元数据:
public class FooMetadata
{
[Required]
[StringLength(10)]
public string Foo { get; set; }
}
或者,简单地抛出数据注释并使用真实的验证框架,例如FluentValidation.NET(我使用并强烈推荐),允许您以流畅的方式在模型上表达复杂的验证规则,具有{{ 3}}并且还允许您孤立地优雅地excellent integration with ASP.NET MVC。