更新面板中有一个列表视图
Update Panel
List View
Email 1
Email 2
Email 3
...
我试图做一个收件箱类似于GMAIL在ASP。. NET,我唯一正在努力的是如何检测数据库的变化(即当一个新的消息被发送),并将该消息推到ListView,以模拟用户已经收到了一个新的消息(就像gmail一样)
我如何使用SignalR检测数据库更改并使用SignalR将它们推入列表视图?这可能吗?
如果您正在使用Sql Server,请遵循此链接。http://techbrij.com/database-change-notifications-asp-net-signalr-sqldependency
它基本上使用SqlDependency来订阅Sql Server中的更改。
如果你不使用Sql Server,你必须手动执行此操作。对于视图端,你可以使用KnockoutJS或angular来方便地修改列表。
//Set up dependency
protected void Application_Start()
{
//...
SqlDependency.Start(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
}
protected void Application_End()
{
SqlDependency.Stop(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
}
SqlDependency dependency = new SqlDependency(command);
dependency.OnChange += new OnChangeEventHandler(dependency_OnChange);
我不认为您可以使用SignalR来检测数据库中的更改,而是将更改推送到网站。使用SqlDependency或SQL Notification Services之类的东西来检测数据库中的变化,然后SignalR将它们推送到web页面。