asp.net mvc 3-MVC3伙伴类、视图模型和验证



我目前正在进行我的第一个MVC项目,它只不过是一个美化的博客,用于我自己的学习目的。我从数据库优先的方法开始,因为当时我甚至不知道代码优先的存在。这让我对如何处理验证感到困惑。

我在数据库中有一个Articles表,它有一个由EF为我生成的相应的Article类。我还有一个ArticleViewModel类,它对Article中的每个属性都有一个匹配的属性。虽然我有简单的CRUD操作,但他们目前使用的是强类型Article模型,而不是ArticleViewModel,并且没有进行数据验证。

在今天做了一些研究来评估我的选择后,我发现了以下问题和这篇博客文章。因此,看起来我可以将MetadataType属性应用于EF生成的类,并将我的验证放在那里,但我一直读到,包含验证的伙伴类是不好的做法。我不知道为什么会这样,但如果是这样的话,这是否意味着我应该忽略好友类并做以下事情?

[MetadataType(typeof(ArticleViewModel))]
public partial class Article
{
    public Article(ArticleViewModel avm)
    {
        // Copy the properties from the ArticleViewModel into an Article.
    }
}

然后根据需要将DataAnnotations应用于ArticleViewModel,并更新我的控制器/视图以使用ArticleViewModel

提前感谢您的任何意见。:(

是的,我最近学会了这种方法!这是一个很好的实践,只要你不介意涉及额外的代码。请参阅在asp.net mvc 3中,您将验证放在哪里?了解更多详细信息以及代码示例的公认答案。

相关内容

  • 没有找到相关文章

最新更新