我如何从业务逻辑刷新部分视图
Posted
技术标签:
【中文标题】我如何从业务逻辑刷新部分视图【英文标题】:how I refresh the partial view from Business logic 【发布时间】:2013-12-02 18:56:05 【问题描述】:查看:索引
@ ViewBag.Title = "主页"; @部分内容1 @Ajax.ActionLink("Just refresh", "_Test", "Home", null, new AjaxOptions() UpdateTargetId = "ContentRefresh", HttpMethod = "Post" , null) @html.Partial("_Test") @section 内容2 @Html.Partial("_Test2")查看:_Test
@using (Ajax.BeginForm("_Test", "Home", null, new AjaxOptions()UpdateTargetId = "ContentRefresh", HttpMethod = "Post" , null)) @Html.TextBox("名称");查看:_Test2
@ViewBag.Name:@ViewBag.DateTime控制器:
公共 ActionResult _Test(FormCollection 表单) 字符串名称=表单[“名称”]; if (Request.IsAjaxRequest()) 线程 thread = new Thread(() => RunThread()); 线程.Start(); ViewBag.Name = name == null ? “没有人,只是令人耳目一新”:名称; ViewBag.DateTime = DateTime.Now.ToShortTimeString(); 返回 PartialView("_Test2"); 别的 返回视图();此事件是来自业务逻辑的调用。
公共无效ChangeEventFromBusinessLogic(对象o) //来自 RunThread 的事件.... //刷新我的视图来自视图的 ajax 调用确实有效。我如何在没有任何用户操作的情况下从业务逻辑刷新视图。
我该怎么做?
【问题讨论】:
【参考方案1】:您可以通过实现 HTML 5 功能 WebSocketAPI 来做到这一点。这是一种推送技术,它允许服务器更新他们连接的客户端。
SinglaR
是 Microsoft 为 ASP.Net 应用程序实现的 WebSocket。
见Getting Started with SignalR
这仅适用于支持 WebsocketAPI 的浏览器
【讨论】:
@user3008091,如果您不使用 HTML 5,您可以使用 ajax 并在特定时间间隔内持续 ping 服务器以进行任何更新以上是关于我如何从业务逻辑刷新部分视图的主要内容,如果未能解决你的问题,请参考以下文章