asp.net MVC 使用signalR +bootstrap 实现 progressBar

View

@{
    ViewBag.Title = "Progress bar test";
}
@section scripts {

    <script src="~/Scripts/jquery.signalR-2.2.0.min.js"></script>
    <!--Reference the autogenerated SignalR hub script. -->
    <script src="~/signalr/hubs"></script>

    <script>
        $(function () {
            // Reference the auto-generated proxy for the hub.
            var proxy = $.connection.aMockThreadHub; // !!!!must start with lower case !!
            // Create a function that the hub can call back to display messages.
            proxy.client.updateProgress = function (status) {
                status |= 0;
                // Add the message to the page.
                $(‘#progress-bar‘).css("width", status + "%");
                $("#progress-text").html(status + "%");
            };
            $.connection.hub.start().done(function () {

            });
        });
        // This optional function html-encodes messages for display in the page.
    </script>
}

<div class="progress" style="margin-top: 200px">
    <div class="progress-bar" id="progress-bar" role="progressbar" aria-valuenow="70"
         aria-valuemin="0" aria-valuemax="100" style="width:0">
        <span id="progress-text"></span>
    </div>
</div>

需要注意hub class名在js中是小写开头的,不然找不到

SignalR class

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Web;
using Microsoft.AspNet.SignalR;

namespace SignalRStudyFromNoam.SignalR
{
    public class AMockThreadHub : Hub
    {
        public void DoSomeBackendJob()
        {
            Task.Run(() =>
            {
                double state = 1;
                while (state < 100)
                {
                    state += new Random().Next(5) ;
                    if (state > 100) state = 100;

                    Thread.Sleep(700);

                    var context = GlobalHost.ConnectionManager.GetHubContext<AMockThreadHub>();
                    context.Clients.All.updateProgress(state);
                }
            });
        }
    }
}

Startup.cs

app.MapSignalR();

Controller

 public ActionResult Index()
        {
            new AMockThreadHub().DoSomeBackendJob();

            return View();
        }
时间: 2024-10-11 05:53:39

asp.net MVC 使用signalR +bootstrap 实现 progressBar的相关文章

Asp.NET MVC 使用 SignalR 实现推送功能二(Hubs 在线聊天室 获取保存用户信息)

简单介绍 关于SignalR的简单实用 请参考 Asp.NET MVC 使用 SignalR 实现推送功能一(Hubs 在线聊天室) 在上一篇中,我们只是介绍了简单的消息推送,今天我们来修改一下,实现保存消息,历史消息和用户在线 由于,我这是在一个项目([无私分享:从入门到精通ASP.NET MVC]从0开始,一起搭框架.做项目 目录索引)的基础上做的,所以使用到的一些借口和数据表,不详细解析,只是介绍一下思路和实现方式,供大家参考 用户登录注册信息 当用户登录之后,我们注册一下用户的信息,我们

Asp.NET MVC 使用 SignalR 实现推送功能一(Hubs)

简介 ASP .NET SignalR 是一个ASP .NET 下的类库,可以在ASP .NET 的Web项目中实现实时通信.什么是实时通信的Web呢?就是让客户端(Web页面)和服务器端可以互相通知消息及调用方法,当然这是实时操作的. WebSockets是HTML5提供的新的API,可以在Web网页与服务器端间建立Socket连接,当WebSockets可用时(即浏览器支持Html5)SignalR使用WebSockets,当不支持时SignalR将使用其它技术来保证达到相同效果. Sign

在ASP.NET MVC中使用 Bootstrap table插件

Bootstrap table: http://bootstrap-table.wenzhixin.net.cn/zh-cn/getting-started/ 1. 控制器代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace AspDotNetMVCBootstrapTable.Controllers { pu

C# ASP.NET MVC 之 SignalR 学习 实时数据推送显示 配合 Echarts 推送实时图表

本文主要是我在刚开始学习 SignalR 的技术总结,网上找的学习方法和例子大多只是翻译了官方给的一个例子,并没有给出其他一些经典情况的示例,所以才有了本文总结,我在实现推送简单的数据后,就想到了如何去推送复杂的数据,以及推送一个实时的图表数据,文本为我原创,转载请注明出处:Richard.Hu,先上一堆乱七八糟的说明先: SignalR的官方地址是: https://www.asp.net/signalr 网上给出例子是一个聊天的例子,官网地址是:https://docs.microsoft.

Bootstrap in ASP.NET MVC 5

一,新建ASP.NET MVC 5 项目 Bootstrap 文件分布 引入到页面 1.定义.注意:不要包含有.min.的文件名称,会被忽略,因为在发布的时候编译器会加载min版的文件 2.在母版页中引用上面的定义 最后一步,程序启动时加载定义的绑定 启用压缩js,css 运行后看页面源码: 压缩前时这样的:

ASP.NET MVC使用Bootstrap系统(2)——使用Bootstrap CSS和HTML元素

Bootstrap提供了一套丰富CSS设置.HTML元素以及高级的栅格系统来帮助开发人员快速布局网页.所有的CSS样式和HTML元素与移动设备优先的流式栅格系统结合,能让开发人员快速轻松的构建直观的界面并且不用担心在较小的设备上响应的具体细节. Bootstrap 栅格(Grid)系统 在移动互联网的今天,越来越多的网站被手机设备访问,移动流量在近几年猛增.Bootstrap 提供了一套响应式.移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列.

asp.net mvc signalr 简单聊天室

signalr的神奇.实用很早就知道,但一直都没有亲自去试用,仅停留在文章,看了几篇简单的介绍文字,感觉还是很简单易用的. 由于最后有个项目需要使用到它,所以就决定写个小程序测试一下,实践出真知:别人写的文章,由于环境(版本等)不同,还是或多或少存在一些出入的. 环境:vs2013 / asp.net mvc 5 / signalr 2.2.1 / jquery 1.10.2 先上两个效果图: 系统会自动给加入聊天室的人员分配一个ID,是该人员的唯一标识(绿色为当前用户说的话,橙色为当前用户之外

ASP.NET MVC使用Bootstrap系列(3)——使用Bootstrap 组件

Bootstrap为我们提供了十几种的可复用组件,包括字体图标.下拉菜单.导航.警告框.弹出框.输入框组等.在你的Web Application中使用这些组件,将为用户提供一致和简单易用的用户体验. Bootstrap组件本质上是结合了各种现有Bootstrap元素以及添加了一些独特Class来实现.Bootstrap元素我在上一篇文章中涉及到,具体可以参考<ASP.NET MVC使用Bootstrap系列(2)——使用Bootstrap CSS和HTML元素>. 在这篇博客中,我将继续探索B

[ASP.NET MVC] 使用Bootstrap套件

[ASP.NET MVC] 使用Bootstrap套件 前言 在开发Web项目的时候,除了一些天赋异禀的开发人员之外,大多数的开发人员应该都跟我一样,对于如何建构出「美观」的用户接口而感到困扰.这时除了,加入美术人员这个选项之外,开发人员也可以自立自强,为Web项目内加入Bootstrap套件.透过使用Bootstrap套件中各种设计精美的样式.组件,来让Web项目的用户接口更加的美观大气,增加客户对于项目产出的好感度.本篇文章介绍如何在Web项目里使用Bootstrap套件,为自己留个纪录也希