【发布时间】:2018-05-05 04:08:41
【问题描述】:
我需要帮助我正在采取的方法。
所以我有这种情况,我在我的一个 MVC 应用程序中使用 DataReader 从数据库中获取数据。在终点(即 web api 控制器),我将数据作为 IEnumerable<> 类型返回。
我正在使用foreach() 从 IEnumerable 一次读取一行,并使用 SignalR 将数据返回给客户端。所以客户端在服务器端调用一个方法,服务器开始连续流数据(逐行)。
现在我想以块的形式返回数据而不是一次返回一行,我设法修改了 foreach 循环并一次返回“n”行(所以现在它一次发送 n 行),但它发送它们一直持续到它用完数据然后关闭连接。
我以块的形式发送数据的原因是为了在 UI (Angular) 上的页面中显示数据。
我的问题是,我可以按需调用 SignalR,就像它发送前 10 行一样,然后等待客户端单击下一页并再次开始从 11 到 20 行发送,依此类推..(我我试图避免对每个客户端调用进行数据库调用,因此循环应该从之前的位置开始)。
我没有让客户选择跳转到某个页面(只是一页接一页)。
我也想知道我们是否可以保持以前页面的状态,以便客户想要转到以前的页面。 (我认为如果不将数据保存在我试图避免的某个地方,这是不可能的)。
请告诉我 SignalR 是否可以在这种情况下使用。如果没有,有什么好的方法呢?
我是 SignalR 的新手,也是 C# 的初学者,所以请放轻松。
如果您需要任何进一步的说明,请告诉我。
【问题讨论】:
-
对不起。你的问题太笼统了,无法简单回答。请尝试改写它并避免像“我应该在问题中提到这个”这样的 cmets。很高兴看到您已经尝试过的一些简化示例。
标签: c# asp.net-mvc signalr