我想为我的 asp.net mvc 应用程序创建一个 Facebook 风格的“whats new”视图。
这可能会生成诸如...的内容
* Ciaran sent a message to The Rise and Fall of the Rockets
* Rick is going to Songs for the bathtub on Thursday, 28 June 2009
* Col became a fan of The Rise and Fall of the Rockets
* Leeroy posted Busk To Beat Cancer
* Tom went to HMV Showcase on Friday, 19 May 2009
他是我目前脑海中的方法......
这些项目中的每一个都代表不同类型的内容。
例如,演出、新闻、评论等
每种内容类型都存储在不同的数据库表中,即演出、新闻、评论等:
当向应用程序添加新内容(例如创建新闻故事)时,我计划在“WhatsNew 表”中创建一个附加条目</p>
表 1:最新消息
id、contentId、createdDate
表2:
用户 ID、内容 ID
当用户查看一段内容时,表 2 中会添加一个条目(用户的 id 和内容)。
上面的视图由以下人员创建:
1) 从 WhatsNew 表返回在表 2 中没有针对特定登录用户的条目的 contentIds,按创建日期排序。
然后我要求我的 newsManager、gigsManager 等根据这些 id 给我摘要内容。我可以传递所有 id,即使它们可能代表不同类型的内容,因为 contentid 是 guid,我假设我的表不会发生任何冲突(我只有一个 db)。或者,我可以使用某种鉴别器......
所有摘要对象都实现了 ISummary,并且还可能包含定制数据。所以我现在有一个列表,我将它传递给一个视图......</p>
每个摘要类型都有一个知道如何呈现它的局部视图。用于呈现特定项目的部分将根据摘要类型进行选择。(请注意,列表将包含不同类型的摘要......
请注意,我不希望 WhatsNew 表实际包含诸如“Rick is going to Songs for the bathtub on Thursday, 28 June 2009”之类的标题字符串,因为这会使
改变我生成这些的方式——即我可能会根据用户的位置对它们进行不同的表述。
国际化日期等。
这也意味着生成标题的 newsManager/gigsManager 需要有关网站路由的知识..
例如标题“Rick is going to Songs for the bathtub on Thursday, 28 June 2009”包含多个链接!!
想法?这看起来合乎情理吗?感觉很恶心。