MVC 5 Ajax + bootstrap+ handle bar 例: 实现service 状态
<script src="../../Scripts/handlebars-v1.3.0.js"></script>
<script id="service-status-details-template" type="text/x-handlebars-template">
{{#each values}}
<div class="top-buffer-10">
<div class="pull-left">{{ServiceName}}</div>
<span style="margin-left: 15px;"> </span>
<div class="pull-right">
<span class="service-details-time">{{TimeDurationAgo}} AGO</span>
{{#if IsUp}}
<span class="glyphicon glyphicon-ok-sign" style="color: #5cb85c;"></span>
{{else}}
<span class="glyphicon glyphicon-exclamation-sign" style="color: #ff4f28;"></span>
{{/if}}
</div>
</div>
{{/each}}
</script>
<div style="z-index: 10;display: none;" id="service-status-details">
</div>
<a id="service-status" style="margin-left: 30%;" data-placement="bottom" href="#"></a>
<script>
var serviceStatusUrl = '@Url.Action("GetMonitoringServicesStatus")';
$(document).ready(function () {
$("#service-status").popover(
{
html: true,
content: function () {
return $('#service-status-details').html();
}
});
refreshServiceStatus();
//window.setInterval(refreshServiceStatus, 5 * 60 * 1000 /*frequency set to 5 mins*/);
});
function refreshServiceStatus() { /*should be change to set interval*/
$.ajax({
type: 'POST',
url: serviceStatusUrl, /*this value is set in _monitoringServices.cshtml */
success: function (data) {
applyToJsTemplate("service-status-details", "service-status-details-template", data);
if (!data.isOk) {
$("#service-status").attr("class", "btn glyphicon glyphicon-exclamation-sign");
$("#service-status").css("color", "#ff4f28");
} else {
$("#service-status").attr("class", "btn glyphicon glyphicon-ok-sign");
$("#service-status").css("color", "#5cb85c");
}
},
dataType: "json"
});
}
function applyToJsTemplate(layoutId, templateId, data) {
$("#" + layoutId).html(Handlebars.compile($("#" + templateId).html())(data));
}
</script>
Css
<style>
.popover-content {
background-color: #dadada;
}
.service-details-time {
color: #adadad;
} .service-details-name {
color: #5d5d5d;
}
.popover {
max-width: 100%;
} </style>
C#
public JsonResult GetMonitoringServicesStatus()
{
if (DateTime.Now.Second % 2 == 0)
{
var serviceList = Builder<MonitoringServicesModel>.CreateListOfSize(5)
.TheFirst(1).With(m => m.ServiceName, "Active Directory").With(m => m.IsUp, false).With(m => m.TimeDurationAgo, "11 MINS")
.TheNext(1).With(m => m.ServiceName, "aZure.Microsoft.com").With(m => m.IsUp, true).With(m => m.TimeDurationAgo, "5 MINS")
.TheNext(1).With(m => m.ServiceName, "aZure Preview Portal").With(m => m.IsUp, false).With(m => m.TimeDurationAgo, "16 MINS")
.TheNext(1).With(m => m.ServiceName, "Management Portal").With(m => m.IsUp, false).With(m => m.TimeDurationAgo, "31 MINS")
.TheNext(1).With(m => m.ServiceName, "Network Infrastructure").With(m => m.IsUp, true).With(m => m.TimeDurationAgo, "1 MINS")
.Build();
var allUp = serviceList.All(s => s.IsUp);
return Json(new { isOk = allUp, values = serviceList }, JsonRequestBehavior.AllowGet);
}
else
{
var serviceList = Builder<MonitoringServicesModel>.CreateListOfSize(5)
.TheFirst(1).With(m => m.ServiceName, "Active Directory").With(m => m.IsUp, true).With(m => m.TimeDurationAgo, "1 MINS")
.TheNext(1).With(m => m.ServiceName, "aZure.Microsoft.com").With(m => m.IsUp, true).With(m => m.TimeDurationAgo, "26 MINS")
.TheNext(1).With(m => m.ServiceName, "aZure Preview Portal").With(m => m.IsUp, true).With(m => m.TimeDurationAgo, "16 MINS")
.TheNext(1).With(m => m.ServiceName, "Management Portal").With(m => m.IsUp, true).With(m => m.TimeDurationAgo, "5 SECONDS")
.TheNext(1).With(m => m.ServiceName, "Network Infrastructure").With(m => m.IsUp, true).With(m => m.TimeDurationAgo, "1 MINS")
.Build();
var allUp = serviceList.All(s => s.IsUp); return Json(new { isOk = allUp, values = serviceList }, JsonRequestBehavior.AllowGet);
}
} public class MonitoringServicesModel
{
public string ServiceName { get; set; } public string TimeDurationAgo { get; set; } public bool IsUp { get; set; }
}
MVC 5 Ajax + bootstrap+ handle bar 例: 实现service 状态的更多相关文章
- 用最基本的EF+MVC+JQ+AJAX+bootstrap实现权限管理的简单实例 之登陆和操作权限
先来一堆关于上篇文章的废话(不喜者点此隐藏) 今天把博客加了个小功能,就是点标题可以隐藏或展示相关内容,做法很傻,就是引用了bootstrap的两个css类和全部的js文件,其实这样的小功能完全应该自 ...
- MVC遇上bootstrap后的ajax表单模型验证
MVC遇上bootstrap后的ajax表单验证 使用bootstrap后他由他自带的样式has-error,想要使用它就会比较麻烦,往常使用jqueyr.validate的话只有使用他自己的样式了, ...
- 转:MVC遇上bootstrap后的ajax表单验证
使用bootstrap后他由他自带的样式has-error,想要使用它就会比较麻烦,往常使用jqueyr.validate的话只有使用他自己的样式了,而且有模型在使用模型验证更方便点.怎么解决呢? 当 ...
- Asp.Net MVC Unobtrusive Ajax
1. Unobtrusive JavaScript介绍 说到Unobtrusive Ajax,就要谈谈UnobtrusiveJavaScript了,所谓Unobtrusive JavaScript ...
- Spring Ajax一个简单样例
配置不说了.要在前面helloworld的样例基础上弄. 相同在hello下新建ajax.jsp <%@ page language="java" contentType=& ...
- ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET MVC 学习笔记-6.异步控制器 ASP.NET MVC 学习笔记-5.Controller与View的数据传递 ASP.NET MVC 学习笔记-4.ASP.NET MVC中Ajax的应用 ASP.NET MVC 学习笔记-3.面向对象设计原则
ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET程序中的web.config文件中,在appSettings这个配置节中能够保存一些配置,比如, 1 <appSettin ...
- MVC使用ajax异步刷新时怎样输出从后台中传过来的JSON数据
前言 这几天在学习MVC使用AJAX异步刷,因为是新手.所以在js中传参数到后台以及后台返回数据到前台怎么接受,怎么前台遍历出JSON数据都开始不知道,相信新手在使用时跟我一样会遇到,这里我就和大家分 ...
- ASP.NET MVC 实现AJAX跨域请求方法《1》
ASP.NET MVC 实现AJAX跨域请求的两种方法 通常发送AJAX请求都是在本域内完成的,也就是向本域内的某个URL发送请求,完成部分页面的刷新.但有的时候需要向其它域发送AJAX请求,完成数据 ...
- asp.net mvc 使用ajax请求 控制器 (PartialViewResult)分部的action,得到一个分部视图(PartialView)的HTML,进行渲染
在asp.net mvc 使用ajax请求获取数据的时候,我们一般是返回json或者xml,然后解析这些数据进行渲染,这样会比较麻烦,可以请求一个 分部action,返回一个分部视图 直接可以渲染,不 ...
随机推荐
- C#的百度地图开发(四)前端显示与定位
原文:C#的百度地图开发(四)前端显示与定位 有了这些定位信息,那要如何在前端的页面上显示出来呢?这需要用到百度地图的JavaScript的API.下面是示例代码. 前端代码 <%@ Page ...
- 【译】ASP.NET MVC 5 教程 - 1:入门
原文:[译]ASP.NET MVC 5 教程 - 1:入门 本教程将教你使用Visual Studio 2013 预览版构建 ASP.NET MVC 5 Web 应用程序 的基础知识.本主题还附带了一 ...
- Eclipse扩展点实践之添加快捷菜单项(Command方式实现)
有两种方式,一种是Action的方式,另一种是Command的方式(这两种方式的区别详见:http://wiki.eclipse.org/FAQ_What_is_the_difference_betw ...
- poj 2299 树状数组求逆序数+离散化
http://poj.org/problem?id=2299 最初做离散化的时候没太确定可是写完发现对的---由于后缀数组学的时候,,这样的思维习惯了吧 1.初始化as[i]=i:对as数组依照num ...
- Unity MVC框架 StrangeIoC
StrangeIoC是一个超轻量级和高度可扩展的控制反转(IoC)框架,专门为C#和Unity编写. 项目地址:https://github.com/strangeioc/strangeioc 文档地 ...
- surfaceflinger中各个layer的排序
surfaceflinger的主要工作就是负责把上层传递下来的各个不同的layer进行composition. 这里,我们来讨论一下各个layer在surfaceflinger中的上下排序关系和相关的 ...
- hdu 2082 生成函数
主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2082 找单词 Time Limit: 1000/1000 MS (Java/Others) Me ...
- linux 除了某个文件或某个目录以外所有删除
rm `ls | grep -v "aa"` //删除除带aa字符串的全部文件 ls | grep -v keep | xargs rm //除keep字符串的以外全删除 r ...
- hdu1520 (树形dp)
hdu1520 http://acm.hdu.edu.cn/showproblem.php?pid=1520 题意是给定一棵树,每个结点有一个价值,要我们选择任意个结点使得总价值最大,规则是如果父亲结 ...
- WPF 各种基础动画实现
C# using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syste ...