我对ASP.NET Core 2 MVC / Razor提出了一个新问题。
如果有办法,我该如何设置属性,例如。从一个控制器立即在页面视图内更新?
我的<zipFiles>
<content>
<zipfileset>
.
.
</zipfileset>
</content>
</zipFiles>
课程有属性
IndexModel : PageModel
public IList<CustomObject> ObjectCollection { get; set; }
会以某种方式被修改,我想更新我的网页视图中的ObjectCollection
。
如果我调试,我可以看到ObjectCollection.Count()
具有正确的值。
但是页面视图中显示的值始终保持初始状态,这是一个旧的值。
我是否必须以某种方式刷新我在Razor页面中的视图?
答案 0 :(得分:3)
请求通常从客户端生成,如果您希望服务器能够在没有先收到请求的情况下向客户端发送内容,则需要使用类似Web套接字的内容。在.NET世界中,这意味着您需要SignalR。
如何完全设置它超出了Stack Overflow的范围。但是,一般来说,您需要创建一个SignalR中心服务器端。然后,在客户端,您需要订阅该中心。当服务器端发生变化时,您的代码将向集线器发送一条消息,然后该消息将发送给所有订阅的客户端。一旦客户端收到消息,您将需要进一步的客户端代码来实现,即在表中显示新行或其他内容。