【发布时间】:2013-11-17 06:15:55
【问题描述】:
我正在学习 MVC 并且有一个想法,我想请一些意见。
我正在制作一个简单的社交网络来学习 MVC。有用户和帖子。每个用户的墙上可以有许多帖子(来自他们自己和其他用户)。这些是我的领域模型
**USER**
UserID
Username
First Name
Second Name
WallID
**POST**
PostID
WallID (id of user who's wall has been posted to)
UserID (user who posted)
PostConent
现在我试图理解视图模型。而且我认为我没有正确理解它们,根据我目前的理解来获取帖子作者的用户信息,我将制作两个新模型来组合页面上的数据:
**POSTExtended**
PostID
WallID (id of user who's wall has been posted to)
UserID (user who posted)
PostConent
Username
FirstName
SurName
**WallViewModel**
PostExtended postExtended = new PostExtended
User user = new User
现在我不确定如何填充它。我目前最好的猜测听起来像是可行 - 但听起来肯定不对!
我会创建一个绑定到 wallViewModel 的控制器。
然后我会查询数据库以获取相关 WallID 的所有帖子并将它们存储在对象列表中。
然后,我将使用 foreach 循环查询列表中每个帖子的用户表 - 获取该 PostID 的用户名和用户名,并将它们添加到新的 PostExtended 对象(使用来自原始帖子的其他数据对象),并将它们存储在后扩展对象列表中。
然后我会点击数据库来获取 wallViewModel 的用户对象(帖子所属的用户),这样我就可以在标题等中显示他们的名字。
然后我将添加用户对象并将 PostExtended 对象列表添加到 WallViewModel 对象。并将该对象发送到视图。
现在这听起来对我来说是错误的,因为据我所知,这意味着每个帖子都要单独访问数据库以获取用户名。
请有人对此有所了解。听起来必须有一种更简单的方法来做到这一点! (如果这是正确的方法,那么在帖子表中复制数据以节省每次循环访问数据库会更好吗?)。
希望这是可以理解的!谢谢
【问题讨论】:
标签: asp.net-mvc entity-framework asp.net-mvc-4