我不知道在寻找此信息时要搜索什么,所以我们去...
我最近对我的MVC网站进行了更改(所有代码零件都是VB,不像大多数倾向于在C#中的示例)。一旦用户登录,就可以向用户显示一个弹出框或DIV的方法,这简单地解释了所做的更改(框中的文本并不重要)。我只希望用户看到一次!例子:用户进入URL后,他们就会得到一个弹出框,说"您现在必须在创建新帖子时添加您的名字"但是,当然,用户不想每次登录到页面时都会看到此内容。
任何指针都会很可爱,欢呼。
您需要以某种方式跟踪用户看到该消息的方式。如果有可能会有以后的消息,那么在用户看到消息等时跟踪的任何价值。
也许是消息的查找表:
ID | Message
-------------
1 | "This is the text of the message, or maybe the whole HTML, or some other data, it's up to you."
2 | "Other message, etc."
和一个将其链接到用户的表:
UserID | MessageID | DisplayedOn
--------------------------------
123 | 1 | 2014-01-30 08:56:21
您甚至可以使消息更加"交互式",并具有"接受"或"我了解"按钮,要求用户接受该消息或再次查看直到它们。对于这样的东西,您可以将DisplayedOn
更改为FirstDisplayedOn
(也许包括LastDisplayedOn
?),也可以将AcceptedOn
更改为跟踪该交互。这对于更新服务条款可能非常有用。
然后,当用户登录时,当您从数据库中获取总体用户上下文/对象时,您将包括他们需要看到的任何消息,尚未看到,尚未接受的。显示基于此显示的任何内容。
您只想在用户记录后才显示弹出窗口,因此您需要存储有关谁看过此弹出窗口的信息。我猜您已经设置了数据库和数据访问层。因此,您需要添加一个带有以下列的新表:
Id | UserId | PopupId | ShownOn
在显示弹出窗口之前,您需要查询此表以查看用户是否已经看到它。如果不是,只需显示弹出窗口并在数据表中插入新记录。
我们不知道您如何访问数据,因此无法提供更精确的解决方案。