Asp.net mvc 为每个用户/IP添加一个弹出框,以便只查看一次

Asp.net mvc 为每个用户/IP添加一个弹出框,以便只查看一次,asp.net-mvc,vb.net,Asp.net Mvc,Vb.net,我不知道在寻找这方面的信息时到底要搜索什么,所以我们开始吧 我最近对我的MVC网站做了一个改动(所有的代码部分都是VB,不像大多数的例子都是C#)。 用户登录后,是否有方法向该用户显示一个弹出框或div,该弹出框或div仅解释所做的更改(框中的文本不重要)。 我只想让用户看到这一次! 例子: 一旦用户转到URL,他们就会看到一个弹出框,上面写着“您现在必须在创建新帖子时添加您的姓名” 当然,用户不希望每次登录页面时都看到这一点 任何指针都会很可爱, 干杯。您需要以某种方式跟踪用户看到的消息。如果

我不知道在寻找这方面的信息时到底要搜索什么,所以我们开始吧

我最近对我的MVC网站做了一个改动(所有的代码部分都是VB,不像大多数的例子都是C#)。 用户登录后,是否有方法向该用户显示一个弹出框或div,该弹出框或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
在显示弹出窗口之前,您需要查询此表,以查看用户是否已经看到它。如果没有,只需显示弹出窗口并在数据表中插入一条新记录


由于我们不知道您是如何访问数据的,因此无法给出更精确的解决方案。

多亏了双方都给出了解决方案,这是我在发布问题之前考虑过的方法。理想情况下,我不想编辑已经设置好的表,但我想可能没有更简单的方法。再次感谢!